Debugger3-Schnittstelle
Mit Debugger3 können die Zustände des Debuggers und des derzeit gedebuggten Programms abgefragt und bearbeitet werden. Debugger3 hat Vorrang vor der Debugger2-Schnittstelle und der Debugger-Schnittstelle.
Namespace: EnvDTE90
Assembly: EnvDTE90 (in EnvDTE90.dll)
Syntax
'Declaration
<GuidAttribute("87DFC8DA-67B4-4954-BB89-6A277A50BAFC")> _
Public Interface Debugger3 _
Inherits Debugger2
[GuidAttribute("87DFC8DA-67B4-4954-BB89-6A277A50BAFC")]
public interface Debugger3 : Debugger2
[GuidAttribute(L"87DFC8DA-67B4-4954-BB89-6A277A50BAFC")]
public interface class Debugger3 : Debugger2
[<GuidAttribute("87DFC8DA-67B4-4954-BB89-6A277A50BAFC")>]
type Debugger3 =
interface
interface Debugger2
end
public interface Debugger3 extends Debugger2
Der Debugger3-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 gedebuggt werden. | |
DTE | Ruft das Erweiterbarkeitsobjekt der obersten Ebene ab. | |
ExceptionGroups | Ruft die Ausnahmeeinstellungen für den Debugger ab.Bei jeder Ausnahme kann durch diese Einstellungen festgelegt werden, dass die Ausnahme durch den Code behandelt wird, bevor die Ausführung vom Debugger unterbrochen wird. | |
ForceContinue | Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob der Debugger die Anwendung unterbricht oder fortführt, wenn die Ausführung eines Makros durch einen Ablaufverfolgungspunkt oder einen Haltepunkt beendet wird.Das Standardverhalten wird beim Erstellen des Ablaufverfolgungs- oder Haltepunkts im Dialogfeld durch den Benutzer festgelegt.Diese Eigenschaft kann verwendet werden, um das Standardverhalten zu ändern. | |
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 zurzeit auf dem Computer ausgeführt werden. | |
OnlyLoadSymbolsManually | Ruft einen Wert ab, der festlegt, ob Symbole manuell oder automatisch geladen werden.Der Visual Studio-Benutzer kann diese Einstellung im Dialogfeld Optionen festlegen.Weitere Informationen über das Festlegen dieses Werts in Visual Studio finden Sie unter [OBSOLETE] Gewusst wie: Angeben von Symbolspeicherorten und Ladeverhalten. | |
Parent | Ruft das unmittelbar übergeordnete Objekt des Debugger3-Objekts (DTE2) ab. | |
SymbolCachePath | Ruft eine Zeichenfolge ab, die den Pfad zum Speicherort des in Visual Studio verwendeten Symbolcaches enthält, wenn Sie Symbole von einem Symbolserver herunterladen.Sie können den Pfad zum Symbolcache im Dialogfeld Optionen angeben.Weitere Informationen finden Sie unter [OBSOLETE] Gewusst wie: Verwenden eines Symbolservers. | |
SymbolPath | Ruft eine Zeichenfolge ab, die Pfade zu den von Visual Studio zum Debuggen verwendeten PDB-Symboldateien enthält.Der Visual Studio-Benutzer kann die Symbolpfade im Dialogfeld Optionen festlegen.Weitere Informationen finden Sie unter [OBSOLETE] Gewusst wie: Angeben von Symbolspeicherorten und Ladeverhalten. | |
SymbolPathState | Ruft eine Zeichenfolge ab, die den Zustand aller Symbolpfade zu den PDB-Symboldateien enthält, die von Visual Studio zum Debuggen verwendet werden. | |
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.Diese Memberfunktion ist dem GetExpression ähnlich. Sie enthält jedoch einen zusätzlichen booleschen Parameter, der auf "true" gesetzt werden kann, um darauf hinzuweisen, dass der Ausdruck als Anweisung ausgewertet werden soll. | |
GetProcesses | ||
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. | |
SetSymbolSettings | Legt verschiedene Einstellungen für die in Visual Studio zum Debuggen verwendeten PDB-Symbole fest, und erzwingt das erneute Laden aller Symbole. | |
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 |
Zum Seitenanfang
Hinweise
Der Debugger wird über das DTE2-Objekt, genauer über dessen Debugger-Eigenschaft, bereitgestellt, wie Sie dem folgenden Beispiel entnehmen können. Für jede Instanz der interaktiven Entwicklungsumgebung (IDE) ist ein Debuggerobjekt verfügbar.
Beispiele
Imports System
Imports EnvDTE
Imports EnvDTE90
Imports EnvDTE90
Imports System.Diagnostics
Public Module Module1
'This function returns true if the debugger is actively debugging.
Function IsDebugging() As Boolean
Dim debugger As EnvDTE90.Debugger3
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 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 "dte90.olb" raw_interfaces_only named_guids
using namespace EnvDTE90;
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(&pDebugger3)) &&
pDebugger3
!= NULL){
dbgDebugMode mode;
if (SUCCEEDED(pDebugger3->get_CurrentMode(&mode))) {
if (mode != dbgDesignMode) {
printf("Debugger is active.\n");
nRet = 1;
}
else {
printf("Debugger is not active.\n");
}
}
}
}
}
CoUninitialize();
return nRet;
}