Interfejs Debugger
Debugger Obiekt jest używany do interrogate i manipulować nimi Państwa debugera, a program debugowany.
Przestrzeń nazw: EnvDTE
Zestaw: EnvDTE (w EnvDTE.dll)
Składnia
'Deklaracja
<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 uwidacznia następujące elementy członkowskie.
Właściwości
Nazwa | Opis | |
---|---|---|
![]() |
AllBreakpointsLastHit | Zwraca kolekcję związany punkty przerwania, które ostatnio były jednocześnie trafień. |
![]() |
BreakpointLastHit | Pobiera ostatni hit przerwania. |
![]() |
Breakpoints | Zwraca kolekcję punkty przerwania. |
![]() |
CurrentMode | Pobiera bieżący tryb debugera w kontekście zintegrowane środowisko programistyczne (IDE). |
![]() |
CurrentProcess | Ustawia lub pobiera aktywny proces. |
![]() |
CurrentProgram | Ustawia lub pobiera aktywnego programu. |
![]() |
CurrentStackFrame | Ustawia lub pobiera bieżącą ramką stosu. |
![]() |
CurrentThread | Ustawia lub pobiera bieżący wątek debugowany. |
![]() |
DebuggedProcesses | Pobiera listę procesów aktualnie debugowany. |
![]() |
DTE | Pobiera obiekt rozszerzalności najwyższego poziomu. |
![]() |
HexDisplayMode | Pobiera lub ustawia, czy wyrażenia są dane wyjściowe w formacie szesnastkowym lub dziesiętnym. |
![]() |
HexInputMode | Pobiera lub ustawia, czy wyrażenia są oceniane w formacie szesnastkowym lub dziesiętnym. |
![]() |
Languages | Pobiera listę języków obsługiwanych przez narzędzie debugger. |
![]() |
LastBreakReason | Pobiera ostatni powodem, dla którego program zostało przerwane.Jeśli program jest uruchomiony, to zwraca DBG_REASON_NONE. |
![]() |
LocalProcesses | Pobiera listę procesy aktualnie uruchomione na tym komputerze. |
![]() |
Parent | Zwraca obiekt nadrzędny natychmiastowe z Debugger obiektu. |
Początek
Metody
Nazwa | Opis | |
---|---|---|
![]() |
Break | Powoduje, że dany proces wstrzymać jego wykonanie, dzięki czemu można analizować jego bieżący stan. |
![]() |
DetachAll | Odłączenie od wszystkie programy dołączone. |
![]() |
ExecuteStatement | Wykonuje instrukcję.Jeśli TreatAsExpression jest flaga true, następnie ciąg jest interpretowana jako wyrażenie i danych wyjściowych jest wysyłany do okna wiersza polecenia. |
![]() |
GetExpression | Wynikiem wyrażenia opartego na bieżącej klatce stosu.Jeśli wyrażenie można analizować, ale nie są oceniane, zwracany jest obiekt, ale nie będzie zawierać prawidłową wartość. |
![]() |
Go | Rozpoczyna wykonywanie programu od bieżącej instrukcji. |
![]() |
RunToCursor | Uruchamia program z bieżącej pozycji kursora pliku źródłowego. |
![]() |
SetNextStatement | Ustawia następnej instrukcji, które mają być wykonane na podstawie pozycji kursora w bieżącym pliku źródłowego. |
![]() |
StepInto | Kroki do następnego wywołania funkcji, jeśli jest to możliwe. |
![]() |
StepOut | Kroki z bieżącą funkcję. |
![]() |
StepOver | Kroki przez następne wywołanie funkcji. |
![]() |
Stop | Zatrzymuje debugowanie, kończące lub odłączanie od wszystkich procesów dołączonych. |
![]() |
TerminateAll | Kończy wszystkie procesy. |
Początek
Uwagi
Debuger jest dostępna za pośrednictwem DTE obiekt w drodze 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
Poniższy przykład ilustruje sposób użycia obiektu debugera.
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;
}