Sdílet prostřednictvím


Debugger – rozhraní

Debugger Použit objekt interrogate a manipulovat s nimi stavu ladicí program a program laděné.

Obor názvů:  EnvDTE
Sestavení:  EnvDTE (v EnvDTE.dll)

Syntaxe

'Deklarace
<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 zveřejňuje následující členy.

Vlastnosti

  Název Popis
Veřejná vlastnost AllBreakpointsLastHit Získá kolekce zarážek vazby, které byly naposledy současně přístupů.
Veřejná vlastnost BreakpointLastHit Získá poslední zarážky přístupů.
Veřejná vlastnost Breakpoints Získá kolekce zarážek.
Veřejná vlastnost CurrentMode Načte aktuální režim ladění v rámci integrované vývojové prostředí (IDE).
Veřejná vlastnost CurrentProcess Nastaví nebo získává aktivní proces.
Veřejná vlastnost CurrentProgram Nastaví nebo získává aktivní aplikaci.
Veřejná vlastnost CurrentStackFrame Nastaví nebo získá aktuální snímek zásobníku.
Veřejná vlastnost CurrentThread Nastaví nebo získá aktuální podproces laděné.
Veřejná vlastnost DebuggedProcesses Získá seznam procesů právě laděn.
Veřejná vlastnost DTE Načtení objektu nejvyšší úrovně rozšiřitelnosti.
Veřejná vlastnost HexDisplayMode Získá nebo nastaví, zda jsou výrazy v šestnáctkovém nebo desítkovém formátu výstupu.
Veřejná vlastnost HexInputMode Získá nebo nastaví, zda výrazy jsou vyhodnocovány v šestnáctkovém nebo desítkovém formátu.
Veřejná vlastnost Languages Získá seznam jazyků, které podporuje ladicí program.
Veřejná vlastnost LastBreakReason Získá poslední důvod programu bylo přerušeno.Pokud program je spuštěn vrátí DBG_REASON_NONE.
Veřejná vlastnost LocalProcesses Získá seznam procesů aktuálně spuštěné v počítači.
Veřejná vlastnost Parent Bezprostřední nadřízený objekt dostane Debugger objektu.

Na začátek

Metody

  Název Popis
Veřejná metoda Break Způsobí, že daný proces přerušit jeho tak, že lze analyzovat aktuální stav.
Veřejná metoda DetachAll Odpojí se od všech připojených programů.
Veřejná metoda ExecuteStatement Provede zadaný příkaz.Pokud TreatAsExpression je příznak true, je řetězec interpretován jako výraz a výstup je odeslán do příkazového okna.
Veřejná metoda GetExpression Vyhodnotí výraz na základě aktuálního snímku zásobníku.Pokud výraz lze analyzovat, ale nebudou vyhodnoceny, objekt je vrácena, ale neobsahuje platnou hodnotu.
Veřejná metoda Go Spustí program spuštění aktuálního příkazu.
Veřejná metoda RunToCursor Spustí program na aktuální pozici kurzoru zdrojového souboru.
Veřejná metoda SetNextStatement Nastaví další instrukce mají být provedeny podle umístění kurzoru v aktuální zdrojový soubor.
Veřejná metoda StepInto Kroky do další funkce volání, pokud možno.
Veřejná metoda StepOut Kroky z aktuální funkce.
Veřejná metoda StepOver Kroky přes další volání funkce.
Veřejná metoda Stop Zarážky ladění, ukončení nebo odpojení ze všech připojených procesů.
Veřejná metoda TerminateAll Ukončí všechny procesy.

Na začátek

Poznámky

Ladicí program je k dispozici DTE objektu formou jeho Debugger Vlastnosti, jak je znázorněno v následujícím příkladu. Jeden objekt debugger je k dispozici pro každou instanci vývojové prostředí.

Příklady

Následující příklad ukazuje způsob použití objektu ladicí program.

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

Viz také

Odkaz

EnvDTE – obor názvů

Další zdroje

Automation Object Model Chart

Debugging in Visual Studio