Freigeben über


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
Öffentliche Eigenschaft AllBreakpointsLastHit Ruft eine Auflistung der gebundenen Haltepunkte ab, die als letztes gleichzeitig erreicht wurden.
Öffentliche Eigenschaft BreakpointLastHit Ruft den zuletzt erreichten Haltepunkt ab.
Öffentliche Eigenschaft Breakpoints Ruft eine Auflistung von Haltepunkten ab.
Öffentliche Eigenschaft CurrentMode Ruft den aktuellen Modus des Debuggers im Kontext der IDE ab.
Öffentliche Eigenschaft CurrentProcess Ruft den aktiven Prozess ab oder legt ihn fest.
Öffentliche Eigenschaft CurrentProgram Legt das aktive Programm fest oder gibt dieses zurück.
Öffentliche Eigenschaft CurrentStackFrame Ruft den aktuellen Stapelrahmen ab oder legt ihn fest.
Öffentliche Eigenschaft CurrentThread Ruft den aktuellen Thread ab, der gedebuggt wird, oder legt ihn fest.
Öffentliche Eigenschaft DebuggedProcesses Ruft eine Liste der Prozesse ab, die gedebuggt werden.
Öffentliche Eigenschaft DTE Ruft das Erweiterbarkeitsobjekt der obersten Ebene ab.
Öffentliche Eigenschaft 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.
Öffentliche Eigenschaft 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.
Öffentliche Eigenschaft HexDisplayMode Ruft den Wert ab, der angibt, ob die Ausdrücke als Dezimal- oder Hexadezimalwert ausgegeben werden, oder legt diesen Wert fest.
Öffentliche Eigenschaft HexInputMode Ruft einen Wert ab, der angibt, ob die Ausdrücke als Dezimal- oder Hexadezimalwert ausgewertet werden, oder legt diesen Wert fest.
Öffentliche Eigenschaft Languages Ruft eine Liste der vom Debugger unterstützten Sprachen ab.
Öffentliche Eigenschaft LastBreakReason Ruft die zuletzt aufgetretene Ursache für den Programmabsturz ab.Bei laufendem Programm wird DBG_REASON_NONE zurückgegeben.
Öffentliche Eigenschaft LocalProcesses Ruft die Liste der Prozesse ab, die zurzeit auf dem Computer ausgeführt werden.
Öffentliche Eigenschaft 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.
Öffentliche Eigenschaft Parent Ruft das unmittelbar übergeordnete Objekt des Debugger3-Objekts (DTE2) ab.
Öffentliche Eigenschaft 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.
Öffentliche Eigenschaft 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.
Öffentliche Eigenschaft SymbolPathState Ruft eine Zeichenfolge ab, die den Zustand aller Symbolpfade zu den PDB-Symboldateien enthält, die von Visual Studio zum Debuggen verwendet werden.
Öffentliche Eigenschaft Transports Ruft eine Auflistung der unterstützten Debugtransporte ab.

Zum Seitenanfang

Methoden

  Name Beschreibung
Öffentliche Methode Break Bewirkt, dass dieser Prozess angehalten wird, sodass der aktuelle Zustand analysiert werden kann.
Öffentliche Methode DetachAll Trennt alle angehängten Programme.
Öffentliche Methode 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.
Öffentliche Methode 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.
Öffentliche Methode 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.
Öffentliche Methode GetProcesses
Öffentliche Methode Go Startet die Programmausführung von der aktuellen Anweisung.
Öffentliche Methode RunToCursor Führt das Programm an der aktuellen Position des Quelldateicursors aus.
Öffentliche Methode SetNextStatement Legt gemäß der Cursorposition in der aktuellen Quelldatei die nächste auszuführende Anweisung fest.
Öffentliche Methode SetSymbolSettings Legt verschiedene Einstellungen für die in Visual Studio zum Debuggen verwendeten PDB-Symbole fest, und erzwingt das erneute Laden aller Symbole.
Öffentliche Methode StepInto Führt einen Einzelschritt in den nächsten Funktionsaufruf aus, falls möglich.
Öffentliche Methode StepOut Verlässt die aktuelle Funktion.
Öffentliche Methode StepOver Überspringt den nächsten Funktionsaufruf.
Öffentliche Methode Stop Hält den Debugvorgang an und beendet oder trennt alle angefügten Prozesse.
Öffentliche Methode TerminateAll Beendet alle laufenden Programme, die momentan gedebuggt werden.
Öffentliche Methode 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;
}

Siehe auch

Referenz

EnvDTE90-Namespace