Sdílet prostřednictvím


Debugger2 – rozhraní

Debugger2 Objektu lze interrogate a manipulovat s nimi stát ladicí program a program právě laděn.Debugger2 Nahrazuje objektu Debugger objektu.

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

Syntaxe

'Deklarace
<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 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 IDE.
Veřejná vlastnost CurrentProcess Získá nebo nastaví aktivní proces.
Veřejná vlastnost CurrentProgram Nastaví nebo vrátí aktivní aplikaci.
Veřejná vlastnost CurrentStackFrame Získá nebo nastaví aktuální snímek zásobníku.
Veřejná vlastnost CurrentThread Získá nebo nastaví 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í hodnotu označující, zda jsou výrazy výstup v šestnáctkovém nebo desítkovém formátu.
Veřejná vlastnost HexInputMode Získá nebo nastaví hodnotu označující, zda jsou výrazy vyhodnoceny 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 objektu Debugger2 (DTE2).
Veřejná vlastnost Transports Získá kolekce podporované ladění přepravy.

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 je příznak trueje řetězec interpretován jako výraz a výstup je odeslán Příkazové okno.
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 GetExpression2 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 GetProcesses Umožňuje volajícímu získáte kolekci procesů ze vzdáleného počítače.
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 Zastaví ladění a ukončí nebo odpojí od všechny připojené procesy.
Veřejná metoda TerminateAll Ukončí všechny aktuálně spuštěné procesy ladění.
Veřejná metoda WriteMinidump Je-li ladění programu a v režimu přerušení tato funkce vytvoří nepřevedl aktuální relaci ladění.

Nahoru

Poznámky

Ladicí program je k dispozici DTE2 objektu prostřednictvím 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

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

Viz také

Referenční dokumentace

EnvDTE80 – obor názvů