Udostępnij za pośrednictwem


Interfejs Debugger2

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

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

Składnia

'Deklaracja
<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

Typ Debugger2 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 IDE.
Właściwość publiczna CurrentProcess Zwraca lub ustawia aktywny proces.
Właściwość publiczna CurrentProgram Ustawia lub zwraca aktywnego programu.
Właściwość publiczna CurrentStackFrame Zwraca lub ustawia bieżący ramek stosu.
Właściwość publiczna CurrentThread Zwraca lub ustawia 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 wartość określającą, czy wyrażenia są dane wyjściowe w formacie szesnastkowym lub dziesiętnym.
Właściwość publiczna HexInputMode Pobiera lub ustawia wartość określającą, 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 natychmiastowego obiektu Debugger2 (DTE2).
Właściwość publiczna Transports Zwraca kolekcję obsługiwanych transporty debugowania.

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 dane wyjściowe są wysyłane do Okno polecenia.
Metoda publiczna GetExpression Wynikiem wyrażenia opartego na bieżącej klatce stosu.Jeśli wyrażenie można analizować, ale nie są oceniane, obiekt jest zwracany, ale nie zawiera prawidłowej wartości.
Metoda publiczna GetExpression2 Wynikiem wyrażenia opartego na bieżącej klatce stosu.Jeśli wyrażenie można analizować, ale nie są oceniane, obiekt jest zwracany, ale nie zawiera prawidłowej wartości.
Metoda publiczna GetProcesses Umożliwia wywołującego uzyskać zbiór procesów z komputera zdalnego.
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 debugowania i kończy lub odłączenie od wszystkich procesów dołączonych.
Metoda publiczna TerminateAll Kończy wszystkie aktualnie uruchomionych procesów debugowania.
Metoda publiczna WriteMinidump Jeśli program debugowania i w trybie przerwania, ta funkcja tworzy minizrzutu bieżącej sesji debugowania.

Początek

Uwagi

Debuger jest dostępna za pośrednictwem DTE2 obiektu poprzez 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

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;
}

Zobacz też

Informacje

Przestrzeń nazw EnvDTE80