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
Öffentliche Eigenschaft AllBreakpointsLastHit (Von Debugger geerbt.)
Öffentliche Eigenschaft AllBreakpointsLastHit Ruft eine Auflistung der gebundenen Haltepunkte ab, die als letztes gleichzeitig erreicht wurden.
Öffentliche Eigenschaft BreakpointLastHit (Von Debugger geerbt.)
Öffentliche Eigenschaft BreakpointLastHit Ruft den zuletzt erreichten Haltepunkt ab.
Öffentliche Eigenschaft Breakpoints (Von Debugger geerbt.)
Öffentliche Eigenschaft Breakpoints Ruft eine Auflistung von Haltepunkten ab.
Öffentliche Eigenschaft CurrentMode (Von Debugger geerbt.)
Öffentliche Eigenschaft CurrentMode Ruft den aktuellen Modus des Debuggers im Kontext der IDE ab.
Öffentliche Eigenschaft CurrentProcess (Von Debugger geerbt.)
Öffentliche Eigenschaft CurrentProcess Ruft den aktiven Prozess ab oder legt ihn fest.
Öffentliche Eigenschaft CurrentProgram (Von Debugger geerbt.)
Öffentliche Eigenschaft CurrentProgram Legt das aktive Programm fest oder gibt dieses zurück.
Öffentliche Eigenschaft CurrentStackFrame (Von Debugger geerbt.)
Öffentliche Eigenschaft CurrentStackFrame Ruft den aktuellen Stapelrahmen ab oder legt ihn fest.
Öffentliche Eigenschaft CurrentThread (Von Debugger geerbt.)
Öffentliche Eigenschaft CurrentThread Ruft den aktuellen Thread ab, der gedebuggt wird, oder legt ihn fest.
Öffentliche Eigenschaft DebuggedProcesses (Von Debugger geerbt.)
Öffentliche Eigenschaft DebuggedProcesses Ruft eine Liste der Prozesse ab, die momentan gedebuggt werden.
Öffentliche Eigenschaft DTE (Von Debugger geerbt.)
Öffentliche Eigenschaft DTE Ruft das Erweiterbarkeitsobjekt der obersten Ebene ab.
Öffentliche Eigenschaft HexDisplayMode (Von Debugger geerbt.)
Ö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 (Von Debugger geerbt.)
Ö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 (Von Debugger geerbt.)
Öffentliche Eigenschaft Languages Ruft eine Liste der vom Debugger unterstützten Sprachen ab.
Öffentliche Eigenschaft LastBreakReason (Von Debugger geerbt.)
Ö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 (Von Debugger geerbt.)
Öffentliche Eigenschaft LocalProcesses Ruft die Liste der Prozesse ab, die momentan auf dem Computer ausgeführt werden.
Öffentliche Eigenschaft Parent (Von Debugger geerbt.)
Öffentliche Eigenschaft Parent Ruft das unmittelbar übergeordnete Objekt des Debugger2-Objekts (DTE2) ab.
Öffentliche Eigenschaft Transports Ruft eine Auflistung der unterstützten Debugtransporte ab.

Zum Seitenanfang

Methoden

  Name Beschreibung
Öffentliche Methode Break(Boolean) (Von Debugger geerbt.)
Öffentliche Methode Break(Boolean) Bewirkt, dass dieser Prozess angehalten wird, sodass der aktuelle Zustand analysiert werden kann.
Öffentliche Methode DetachAll() (Von Debugger geerbt.)
Öffentliche Methode DetachAll() Trennt alle angefügten Programme.
Öffentliche Methode ExecuteStatement(String, Int32, Boolean) (Von Debugger geerbt.)
Öffentliche Methode ExecuteStatement(String, Int32, Boolean) 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(String, Boolean, Int32) (Von Debugger geerbt.)
Öffentliche Methode GetExpression(String, Boolean, Int32) Wertet einen Ausdruck auf Grundlage des aktuellen Stapelrahmens 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 auf Grundlage des aktuellen Stapelrahmens aus.Wenn ein Ausdruck analysiert, aber nicht ausgewertet werden kann, wird ein Objekt zurückgegeben, das jedoch keinen gültigen Wert besitzt.
Öffentliche Methode GetProcesses Ermöglicht es dem Aufrufer, eine Auflistung der Prozesse auf einem Remotecomputer abzurufen.
Öffentliche Methode Go(Boolean) (Von Debugger geerbt.)
Öffentliche Methode Go(Boolean) Startet die Programmausführung von der aktuellen Anweisung.
Öffentliche Methode RunToCursor(Boolean) (Von Debugger geerbt.)
Öffentliche Methode RunToCursor(Boolean) Führt das Programm bis zur aktuellen Position des Cursors in der Quelldatei aus.
Öffentliche Methode SetNextStatement() (Von Debugger geerbt.)
Öffentliche Methode SetNextStatement() Legt gemäß der Cursorposition in der aktuellen Quelldatei die nächste auszuführende Anweisung fest.
Öffentliche Methode StepInto(Boolean) (Von Debugger geerbt.)
Öffentliche Methode StepInto(Boolean) Führt einen Einzelschritt in den nächsten Funktionsaufruf aus, falls möglich.
Öffentliche Methode StepOut(Boolean) (Von Debugger geerbt.)
Öffentliche Methode StepOut(Boolean) Verlässt die aktuelle Funktion.
Öffentliche Methode StepOver(Boolean) (Von Debugger geerbt.)
Öffentliche Methode StepOver(Boolean) Überspringt den nächsten Funktionsaufruf.
Öffentliche Methode Stop(Boolean) (Von Debugger geerbt.)
Öffentliche Methode Stop(Boolean) Hält den Debugvorgang an und beendet oder trennt alle angefügten Prozesse.
Öffentliche Methode TerminateAll() (Von Debugger geerbt.)
Öffentliche Methode TerminateAll() Beendet alle laufenden Programme, die momentan gedebuggt werden.
Öffentliche Methode 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;
}

Siehe auch

Referenz

EnvDTE80-Namespace