Interfaccia Debugger
Debugger l'oggetto viene utilizzato per interrogare e modificare lo stato del debugger e del programma in fase di debug.
Spazio dei nomi: EnvDTE
Assembly: EnvDTE (in EnvDTE.dll)
Sintassi
'Dichiarazione
<GuidAttribute("338FB9A0-BAE5-11D2-8AD1-00C04F79E479")> _
Public Interface Debugger
[GuidAttribute("338FB9A0-BAE5-11D2-8AD1-00C04F79E479")]
public interface Debugger
[GuidAttribute(L"338FB9A0-BAE5-11D2-8AD1-00C04F79E479")]
public interface class Debugger
[<GuidAttribute("338FB9A0-BAE5-11D2-8AD1-00C04F79E479")>]
type Debugger = interface end
public interface Debugger
Il tipo Debugger espone i seguenti membri.
Proprietà
Nome | Descrizione | |
---|---|---|
AllBreakpointsLastHit | Ottiene una raccolta di punti di interruzione associati contenuti contemporaneamente l'ultima riga eseguita. | |
BreakpointLastHit | ottiene l'ultimo passaggio punto di interruzione. | |
Breakpoints | Ottiene una raccolta di punti di interruzione. | |
CurrentMode | Ottiene la modalità corrente del debugger nel contesto dell'ambiente di sviluppo integrato (IDE) (IDE). | |
CurrentProcess | Imposta o ottiene il processo attivo. | |
CurrentProgram | Imposta o ottiene il programma attivo. | |
CurrentStackFrame | Imposta o ottiene lo stack frame corrente. | |
CurrentThread | Imposta o ottiene il thread corrente in fase di debug. | |
DebuggedProcesses | Ottiene l'elenco dei processi attualmente in corso di debug. | |
DTE | Ottiene l'oggetto estensibilità di primo livello. | |
HexDisplayMode | Ottiene o imposta se le espressioni vengono restituite in o in formato decimale. | |
HexInputMode | Ottiene o imposta se le espressioni vengono valutate in o in formato decimale. | |
Languages | Ottiene un elenco dei linguaggi che il debugger supporta. | |
LastBreakReason | Ottiene l'ultima motivo per cui un programma è stato interrotto.Se il programma è in esecuzione restituisce DBG_REASON_NONE. | |
LocalProcesses | Ottiene l'elenco dei processi attualmente in esecuzione sul computer. | |
Parent | Ottiene l'oggetto padre immediato di un oggetto Debugger oggetto. |
In alto
Metodi
Nome | Descrizione | |
---|---|---|
Break | Determina il processo specificato per sospendere la relativa esecuzione in modo da poter analizzare lo stato corrente. | |
DetachAll | Rimuove da tutti i programmi connessi. | |
ExecuteStatement | Esegue l'istruzione specificato.se TreatAsExpression il flag è true, la stringa viene interpretata come espressione e l'output viene inviato alla finestra di comando. | |
GetExpression | Valuta un'espressione basata sullo stack frame corrente.Se l'espressione può essere analizzata ma non essere valutata, un oggetto viene restituito ma non contiene un valore valido. | |
Go | Iniziare a eseguire il programma dall'istruzione corrente. | |
RunToCursor | Esegue il programma nella posizione corrente del cursore del file di origine. | |
SetNextStatement | Imposta l'istruzione successiva da eseguire, a seconda della posizione del cursore nel file di origine corrente. | |
StepInto | Esegue la chiamata di funzione seguente, se possibile. | |
StepOut | Esce dalla funzione corrente. | |
StepOver | Esegue la chiamata di funzione seguente. | |
Stop | Consente di interrompere l'esecuzione del debug, terminare, rimuovere da tutti i processi connessi. | |
TerminateAll | Terminare tutti i processi. |
In alto
Note
il debugger è disponibile con DTE oggetto mediante il relativo Debugger proprietà, come mostrato nell'esempio seguente.Un oggetto del debugger è disponibile per ogni istanza dell'ambiente di sviluppo.
Esempi
Nell'esempio seguente viene illustrato come utilizzare l'oggetto del debugger.
Imports EnvDTE
Imports System.Diagnostics
Public Module Module1
' This function returns true if the debugger is actively debugging.
Function IsDebugging() As Boolean
Dim debugger As EnvDTE.Debugger
debugger = DTE.Debugger
If (debugger Is Nothing) Then
MsgBox("Debugger doesn't exist! Fatal error.")
IsDebugging = false
Else
IsDebugging = (debugger.CurrentMode <> dbgDebugMode.dbgDesignMode)
End If
End Function
End Module
// The following small C++ program can be run from the command line.
// It detects whether an instance of Visual Studio is currently
// running,and if so, prints a message stating whether its debugger
// is actively debugging.
#include <stdio.h>
#import "dte.olb" raw_interfaces_only named_guids
using namespace EnvDTE;
int main(void)
{
int nRet = 0;
CoInitialize(NULL);
IUnknownPtr pUnk;
GetActiveObject(CLSID_DTE, NULL, &pUnk);
if (pUnk == NULL) {
printf ("No instance of Visual Studio is running.\n");
}
else {
_DTEPtr pDTE = pUnk;
if (pDTE) {
DebuggerPtr pDebugger;
if (SUCCEEDED(pDTE->get_Debugger(&pDebugger)) && pDebugger != NULL){
dbgDebugMode mode;
if (SUCCEEDED(pDebugger->get_CurrentMode(&mode))) {
if (mode != dbgDesignMode) {
printf("Debugger is active.\n");
nRet = 1;
}
else {
printf("Debugger is not active.\n");
}
}
}
}
}
CoUninitialize();
return nRet;
}