Share via


Debugger – rozhraní

Debugger Objektu lze interrogate a manipulovat s nimi stát ladicí program a program právě 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 vázané zarážek, 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 právě laděn.
Veřejná vlastnost DebuggedProcesses Získá seznam procesů, které jsou 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ýstup v šestnáctkovém nebo desítkovém formátu.
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, který program bylo přerušeno.Pokud program je spuštěn vrátí DBG_REASON_NONE.
Veřejná vlastnost LocalProcesses Získá seznam procesů, které jsou aktuálně spuštěné v počítači.
Veřejná vlastnost Parent Získá bezprostřední nadřízený objekt Debugger objektu.

Nahoru

Metody

  Název Popis
Veřejná metoda Break Způsobí, že daný proces tak, aby jeho aktuální stav lze analyzovat pozastavit jeho provádění.
Veřejná metoda DetachAll Odpojí se od všech připojených programů.
Veřejná metoda ExecuteStatement Provede zadaný příkaz.Pokud TreatAsExpression příznak je trueje ř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í snímek zásobníku.Pokud výraz lze analyzovat, ale nebudou vyhodnoceny, objekt je vrácena, ale neobsahuje platnou hodnotu.
Veřejná metoda Go Spustí provádění programu od aktuální příkaz.
Veřejná metoda RunToCursor Spustí program na aktuální pozici kurzoru zdrojového souboru.
Veřejná metoda SetNextStatement Nastaví další instrukce, které mají být provedeny podle umístění kurzoru v aktuální zdrojový soubor.
Veřejná metoda StepInto Kroky do další volání funkce, pokud je to možné.
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.

Nahoru

Poznámky

Ladicí program je k dispozici DTE objektu formou jeho Debugger vlastnost, 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é

Referenční dokumentace

EnvDTE – obor názvů

Další zdroje

Graf modelu objektů automatizace

Ladění v sadě Visual Studio