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 | |
---|---|---|
AllBreakpointsLastHit | Získá kolekce vázané zarážek, které byly naposledy současně přístupů. | |
BreakpointLastHit | Získá poslední zarážky přístupů. | |
Breakpoints | Získá kolekce zarážek. | |
CurrentMode | Načte aktuální režim ladění v rámci IDE. | |
CurrentProcess | Získá nebo nastaví aktivní proces. | |
CurrentProgram | Nastaví nebo vrátí aktivní aplikaci. | |
CurrentStackFrame | Získá nebo nastaví aktuální snímek zásobníku. | |
CurrentThread | Získá nebo nastaví aktuální podproces právě laděn. | |
DebuggedProcesses | Získá seznam procesů, které jsou právě laděn. | |
DTE | Načtení objektu nejvyšší úrovně rozšiřitelnosti. | |
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. | |
HexInputMode | Získá nebo nastaví hodnotu označující, zda jsou výrazy vyhodnoceny v šestnáctkovém nebo desítkovém formátu. | |
Languages | Získá seznam jazyků, které podporuje ladicí program. | |
LastBreakReason | Získá poslední důvod, který program bylo přerušeno.Pokud program je spuštěn vrátí DBG_REASON_NONE. | |
LocalProcesses | Získá seznam procesů, které jsou aktuálně spuštěné v počítači. | |
Parent | Získá bezprostřední nadřízený objekt objektu Debugger2 (DTE2). | |
Transports | Získá kolekce podporované ladění přepravy. |
Nahoru
Metody
Název | Popis | |
---|---|---|
Break | Způsobí, že daný proces tak, aby jeho aktuální stav lze analyzovat pozastavit jeho provádění. | |
DetachAll | Odpojí se od všech připojených programů. | |
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. | |
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. | |
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. | |
GetProcesses | Umožňuje volajícímu získáte kolekci procesů ze vzdáleného počítače. | |
Go | Spustí provádění programu od aktuální příkaz. | |
RunToCursor | Spustí program na aktuální pozici kurzoru zdrojového souboru. | |
SetNextStatement | Nastaví další instrukce, které mají být provedeny podle umístění kurzoru v aktuální zdrojový soubor. | |
StepInto | Kroky do další volání funkce, pokud je to možné. | |
StepOut | Kroky z aktuální funkce. | |
StepOver | Kroky přes další volání funkce. | |
Stop | Zastaví ladění a ukončí nebo odpojí od všechny připojené procesy. | |
TerminateAll | Ukončí všechny aktuálně spuštěné procesy ladění. | |
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;
}