Debugger2-Schnittstelle
Mit dem Debugger2-Objekt können die Zustände des Debuggers und des Programms, das momentan gedebuggt wird, abgefragt und bearbeitet werden. Das Debugger2-Objekt hat Vorrang vor dem Debugger-Objekt.
Namespace: EnvDTE80
Assembly: EnvDTE80 (in EnvDTE80.dll)
Syntax
'Declaration
<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
Der Debugger2-Typ macht die folgenden Member verfügbar.
Eigenschaften
Name | Beschreibung | |
---|---|---|
AllBreakpointsLastHit | Ruft eine Auflistung der gebundenen Haltepunkte ab, die als letztes gleichzeitig erreicht wurden. | |
BreakpointLastHit | Ruft den zuletzt erreichten Haltepunkt ab. | |
Breakpoints | Ruft eine Auflistung von Haltepunkten ab. | |
CurrentMode | Ruft den aktuellen Modus des Debuggers im Kontext der IDE ab. | |
CurrentProcess | Ruft den aktiven Prozess ab oder legt ihn fest. | |
CurrentProgram | Legt das aktive Programm fest oder gibt dieses zurück. | |
CurrentStackFrame | Ruft den aktuellen Stapelrahmen ab oder legt ihn fest. | |
CurrentThread | Ruft den aktuellen Thread ab, der gedebuggt wird, oder legt ihn fest. | |
DebuggedProcesses | Ruft eine Liste der Prozesse ab, die momentan gedebuggt werden. | |
DTE | Ruft das Erweiterbarkeitsobjekt der obersten Ebene ab. | |
HexDisplayMode | Ruft den Wert ab, der angibt, ob die Ausdrücke als Dezimal- oder Hexadezimalwert ausgegeben werden, oder legt diesen Wert fest. | |
HexInputMode | Ruft einen Wert ab, der angibt, ob die Ausdrücke als Dezimal- oder Hexadezimalwert ausgewertet werden, oder legt diesen Wert fest. | |
Languages | Ruft eine Liste der vom Debugger unterstützten Sprachen ab. | |
LastBreakReason | Ruft die zuletzt aufgetretene Ursache für den Programmabsturz ab.Bei laufendem Programm wird DBG_REASON_NONE zurückgegeben. | |
LocalProcesses | Ruft die Liste der Prozesse ab, die momentan auf dem Computer ausgeführt werden. | |
Parent | Ruft das unmittelbar übergeordnete Objekt des Debugger2-Objekts (DTE2) ab. | |
Transports | Ruft eine Auflistung der unterstützten Debugtransporte ab. |
Zum Seitenanfang
Methoden
Name | Beschreibung | |
---|---|---|
Break | Bewirkt, dass dieser Prozess angehalten wird, sodass der aktuelle Zustand analysiert werden kann. | |
DetachAll | Trennt alle angehängten Programme. | |
ExecuteStatement | Führt die angegebene Anweisung aus.Wenn das TreatAsExpression-Flag auf true festgelegt ist, wird die Zeichenfolge als Ausdruck interpretiert und die Ausgabe an Befehlsfenster gesendet. | |
GetExpression | Wertet einen Ausdruck basierend auf dem aktuellen Stapelrahmen aus.Wenn ein Ausdruck analysiert, aber nicht ausgewertet werden kann, wird ein Objekt zurückgegeben, das jedoch keinen gültigen Wert besitzt. | |
GetExpression2 | Wertet einen Ausdruck basierend auf dem aktuellen Stapelrahmen aus.Wenn ein Ausdruck analysiert, aber nicht ausgewertet werden kann, wird ein Objekt zurückgegeben, das jedoch keinen gültigen Wert besitzt. | |
GetProcesses | Ermöglicht es dem Aufrufer, eine Auflistung der Prozesse auf einem Remotecomputer abzurufen. | |
Go | Startet die Programmausführung von der aktuellen Anweisung. | |
RunToCursor | Führt das Programm an der aktuellen Position des Quelldateicursors aus. | |
SetNextStatement | Legt gemäß der Cursorposition in der aktuellen Quelldatei die nächste auszuführende Anweisung fest. | |
StepInto | Führt einen Einzelschritt in den nächsten Funktionsaufruf aus, falls möglich. | |
StepOut | Verlässt die aktuelle Funktion. | |
StepOver | Überspringt den nächsten Funktionsaufruf. | |
Stop | Hält den Debugvorgang an und beendet oder trennt alle angefügten Prozesse. | |
TerminateAll | Beendet alle laufenden Programme, die momentan gedebuggt werden. | |
WriteMinidump | Wenn ein Programm gedebuggt wird und sich im Unterbrechungsmodus befindet, wird von der Funktion ein Minidump der aktuellen Debugsitzung erstellt. |
Zum Seitenanfang
Hinweise
Der Debugger ist über die Debugger-Eigenschaft des DTE2-Objekts verfügbar, wie im Beispiel unten zu sehen ist. Für jede Instanz der Entwicklungsumgebung wird ein Debugger-Objekt bereitgestellt.
Beispiele
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;
}