Interfaccia Debugger2
L'oggetto Debugger2 viene utilizzato per interrogare e modificare lo stato del debugger e del programma sottoposto a debug. L'oggetto Debugger2 sostituisce l'oggetto Debugger.
Spazio dei nomi: EnvDTE80
Assembly: EnvDTE80 (in EnvDTE80.dll)
Sintassi
'Dichiarazione
<GuidAttribute("8B5E2BFD-4642-4EFE-8AF4-0B2DA9AAA23C")> _
Public Interface Debugger2 _
Inherits Debugger
[GuidAttribute("8B5E2BFD-4642-4EFE-8AF4-0B2DA9AAA23C")]
public interface Debugger2 : Debugger
[GuidAttribute(L"8B5E2BFD-4642-4EFE-8AF4-0B2DA9AAA23C")]
public interface class Debugger2 : Debugger
[<GuidAttribute("8B5E2BFD-4642-4EFE-8AF4-0B2DA9AAA23C")>]
type Debugger2 =
interface
interface Debugger
end
public interface Debugger2 extends Debugger
Il tipo Debugger2 espone i seguenti membri.
Proprietà
Nome | Descrizione | |
---|---|---|
AllBreakpointsLastHit | (Ereditato da Debugger) | |
AllBreakpointsLastHit | Ottiene un insieme di punti di interruzione associati raggiunti per ultimi contemporaneamente. | |
BreakpointLastHit | (Ereditato da Debugger) | |
BreakpointLastHit | Ottiene l'ultimo punto di interruzione raggiunto. | |
Breakpoints | (Ereditato da Debugger) | |
Breakpoints | Ottiene un insieme di punti di interruzione. | |
CurrentMode | (Ereditato da Debugger) | |
CurrentMode | Ottiene la modalità corrente del debugger nel contesto dell'IDE. | |
CurrentProcess | (Ereditato da Debugger) | |
CurrentProcess | Ottiene o imposta il processo attivo. | |
CurrentProgram | (Ereditato da Debugger) | |
CurrentProgram | Imposta o restituisce il programma attivo. | |
CurrentStackFrame | (Ereditato da Debugger) | |
CurrentStackFrame | Ottiene o imposta lo stack frame corrente. | |
CurrentThread | (Ereditato da Debugger) | |
CurrentThread | Ottiene o imposta il thread corrente di cui è in corso il debug. | |
DebuggedProcesses | (Ereditato da Debugger) | |
DebuggedProcesses | Ottiene l'elenco di processi di cui è in corso il debug. | |
DTE | (Ereditato da Debugger) | |
DTE | Ottiene l'oggetto estensibilità di primo livello. | |
HexDisplayMode | (Ereditato da Debugger) | |
HexDisplayMode | Ottiene o imposta un valore che indica se le espressioni vengono generate in formato decimale o esadecimale. | |
HexInputMode | (Ereditato da Debugger) | |
HexInputMode | Ottiene o imposta un valore che indica se le espressioni vengono valutate in formato decimale o esadecimale. | |
Languages | (Ereditato da Debugger) | |
Languages | Ottiene un elenco di linguaggi supportati dal debugger. | |
LastBreakReason | (Ereditato da Debugger) | |
LastBreakReason | Ottiene l'ultima causa dell'interruzione di un programma.Se il programma è in esecuzione, viene restituito DBG_REASON_NONE. | |
LocalProcesses | (Ereditato da Debugger) | |
LocalProcesses | Ottiene l'elenco dei processi in esecuzione nel computer in uso. | |
Parent | (Ereditato da Debugger) | |
Parent | Ottiene l'oggetto padre immediato dell'oggetto Debugger2 (DTE2). | |
Transports | Ottiene un insieme di trasporti di debug supportati. |
In alto
Metodi
Nome | Descrizione | |
---|---|---|
Break(Boolean) | (Ereditato da Debugger) | |
Break(Boolean) | Provoca la sospensione dell'esecuzione del processo specificato in modo da consentire l'analisi del suo stato corrente. | |
DetachAll() | (Ereditato da Debugger) | |
DetachAll() | Disconnette da tutti i programmi collegati. | |
ExecuteStatement(String, Int32, Boolean) | (Ereditato da Debugger) | |
ExecuteStatement(String, Int32, Boolean) | Esegue l'istruzione specificata.Se il flag TreatAsExpression è true, la stringa viene interpretata come un'espressione e l'output viene inviato a Finestra di comando. | |
GetExpression(String, Boolean, Int32) | (Ereditato da Debugger) | |
GetExpression(String, Boolean, Int32) | Valuta un'espressione in base allo stack frame corrente.Se l'espressione può essere analizzata, ma non valutata, viene restituito un oggetto, ma il valore in esso contenuto non sarà valido. | |
GetExpression2 | Valuta un'espressione in base allo stack frame corrente.Se l'espressione può essere analizzata, ma non valutata, viene restituito un oggetto, ma il valore in esso contenuto non sarà valido. | |
GetProcesses | Consente al chiamante di ottenere un insieme di processi da un computer remoto. | |
Go(Boolean) | (Ereditato da Debugger) | |
Go(Boolean) | Avvia l'esecuzione del programma dall'istruzione corrente. | |
RunToCursor(Boolean) | (Ereditato da Debugger) | |
RunToCursor(Boolean) | Esegue il programma nella posizione corrente del cursore del file di origine. | |
SetNextStatement() | (Ereditato da Debugger) | |
SetNextStatement() | Imposta la successiva istruzione da eseguire in base alla posizione corrente del cursore nel file di origine. | |
StepInto(Boolean) | (Ereditato da Debugger) | |
StepInto(Boolean) | Esegue la chiamata di funzione successiva, se possibile. | |
StepOut(Boolean) | (Ereditato da Debugger) | |
StepOut(Boolean) | Esce dalla funzione corrente. | |
StepOver(Boolean) | (Ereditato da Debugger) | |
StepOver(Boolean) | Esegue la chiamata di funzione successiva. | |
Stop(Boolean) | (Ereditato da Debugger) | |
Stop(Boolean) | Interrompe il debug e termina o disconnette tutti i processi collegati. | |
TerminateAll() | (Ereditato da Debugger) | |
TerminateAll() | Termina tutti i processi di debug in esecuzione. | |
WriteMinidump | Se è in corso il debug di un programma ed è attivata la modalità di interruzione, questa funzione crea un minidump della sessione di debug corrente. |
In alto
Note
Come illustrato nell'esempio riportato di seguito, il debugger è disponibile attraverso l'oggetto DTE2 mediante la relativa proprietà Debugger. È disponibile un oggetto debugger per ogni istanza dell'ambiente di sviluppo.
Esempi
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 EnvDTE80.Debugger2
debugger = DTE2.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 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 EnvDTE80;
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(&pDebugger2)) &&
pDebugger2
!= NULL){
dbgDebugMode mode;
if (SUCCEEDED(pDebugger2->get_CurrentMode(&mode))) {
if (mode != dbgDesignMode) {
printf("Debugger is active.\n");
nRet = 1;
}
else {
printf("Debugger is not active.\n");
}
}
}
}
}
CoUninitialize();
return nRet;
}