Interfejs Debugger

Debugger Obiekt jest używany do interrogate i manipulować nimi Państwa debugera, a program debugowany.

Przestrzeń nazw:  EnvDTE
Zestaw:  EnvDTE (w EnvDTE.dll)

Składnia

'Deklaracja
<GuidAttribute("338FB9A0-BAE5-11D2-8AD1-00C04F79E479")> _
Public Interface Debugger
[GuidAttribute("338FB9A0-BAE5-11D2-8AD1-00C04F79E479")]
public interface Debugger
[GuidAttribute(L"338FB9A0-BAE5-11D2-8AD1-00C04F79E479")]
public interface class Debugger
[<GuidAttribute("338FB9A0-BAE5-11D2-8AD1-00C04F79E479")>]
type Debugger =  interface end
public interface Debugger

Typ Debugger uwidacznia następujące elementy członkowskie.

Właściwości

  Nazwa Opis
Właściwość publiczna AllBreakpointsLastHit Zwraca kolekcję związany punkty przerwania, które ostatnio były jednocześnie trafień.
Właściwość publiczna BreakpointLastHit Pobiera ostatni hit przerwania.
Właściwość publiczna Breakpoints Zwraca kolekcję punkty przerwania.
Właściwość publiczna CurrentMode Pobiera bieżący tryb debugera w kontekście zintegrowane środowisko programistyczne (IDE).
Właściwość publiczna CurrentProcess Ustawia lub pobiera aktywny proces.
Właściwość publiczna CurrentProgram Ustawia lub pobiera aktywnego programu.
Właściwość publiczna CurrentStackFrame Ustawia lub pobiera bieżącą ramką stosu.
Właściwość publiczna CurrentThread Ustawia lub pobiera bieżący wątek debugowany.
Właściwość publiczna DebuggedProcesses Pobiera listę procesów aktualnie debugowany.
Właściwość publiczna DTE Pobiera obiekt rozszerzalności najwyższego poziomu.
Właściwość publiczna HexDisplayMode Pobiera lub ustawia, czy wyrażenia są dane wyjściowe w formacie szesnastkowym lub dziesiętnym.
Właściwość publiczna HexInputMode Pobiera lub ustawia, czy wyrażenia są oceniane w formacie szesnastkowym lub dziesiętnym.
Właściwość publiczna Languages Pobiera listę języków obsługiwanych przez narzędzie debugger.
Właściwość publiczna LastBreakReason Pobiera ostatni powodem, dla którego program zostało przerwane.Jeśli program jest uruchomiony, to zwraca DBG_REASON_NONE.
Właściwość publiczna LocalProcesses Pobiera listę procesy aktualnie uruchomione na tym komputerze.
Właściwość publiczna Parent Zwraca obiekt nadrzędny natychmiastowe z Debugger obiektu.

Początek

Metody

  Nazwa Opis
Metoda publiczna Break Powoduje, że dany proces wstrzymać jego wykonanie, dzięki czemu można analizować jego bieżący stan.
Metoda publiczna DetachAll Odłączenie od wszystkie programy dołączone.
Metoda publiczna ExecuteStatement Wykonuje instrukcję.Jeśli TreatAsExpression jest flaga true, następnie ciąg jest interpretowana jako wyrażenie i danych wyjściowych jest wysyłany do okna wiersza polecenia.
Metoda publiczna GetExpression Wynikiem wyrażenia opartego na bieżącej klatce stosu.Jeśli wyrażenie można analizować, ale nie są oceniane, zwracany jest obiekt, ale nie będzie zawierać prawidłową wartość.
Metoda publiczna Go Rozpoczyna wykonywanie programu od bieżącej instrukcji.
Metoda publiczna RunToCursor Uruchamia program z bieżącej pozycji kursora pliku źródłowego.
Metoda publiczna SetNextStatement Ustawia następnej instrukcji, które mają być wykonane na podstawie pozycji kursora w bieżącym pliku źródłowego.
Metoda publiczna StepInto Kroki do następnego wywołania funkcji, jeśli jest to możliwe.
Metoda publiczna StepOut Kroki z bieżącą funkcję.
Metoda publiczna StepOver Kroki przez następne wywołanie funkcji.
Metoda publiczna Stop Zatrzymuje debugowanie, kończące lub odłączanie od wszystkich procesów dołączonych.
Metoda publiczna TerminateAll Kończy wszystkie procesy.

Początek

Uwagi

Debuger jest dostępna za pośrednictwem DTE obiekt w drodze jego Debugger właściwości, jak pokazano w poniższym przykładzie.Jeden obiekt debugera jest dostępna dla każdego wystąpienia środowiska programistycznego.

Przykłady

Poniższy przykład ilustruje sposób użycia obiektu debugera.

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 EnvDTE.Debugger
        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 small 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 EnvDTE;

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(&pDebugger)) && pDebugger != NULL){
                dbgDebugMode mode;
                if (SUCCEEDED(pDebugger->get_CurrentMode(&mode))) {
                    if (mode != dbgDesignMode) {
                        printf("Debugger is active.\n");
                        nRet = 1;
                    }
                    else {
                        printf("Debugger is not active.\n");
                    }
                }
            }
        }
    }

    CoUninitialize();

    return nRet;
}

Zobacz też

Informacje

Przestrzeń nazw EnvDTE

Inne zasoby

Wykres modelu obiektów automatyzacji

Debugowanie w Visual Studio