Debugger Interface
The Debugger object is used to interrogate and manipulate the state of the debugger and the program being debugged.
Assembly: EnvDTE (in EnvDTE.dll)
| Name | Description | |
|---|---|---|
![]() | AllBreakpointsLastHit | Gets a collection of bound breakpoints that were last simultaneously hit. |
![]() | BreakpointLastHit | Gets the last breakpoint hit. |
![]() | Breakpoints | Gets a collection of breakpoints. |
![]() | CurrentMode | Gets the current mode of the debugger within the context of the integrated development environment (IDE). |
![]() | CurrentProcess | Sets or gets the active process. |
![]() | CurrentProgram | Sets or gets the active program. |
![]() | CurrentStackFrame | Sets or gets the current stack frame. |
![]() | CurrentThread | Sets or gets the current thread being debugged. |
![]() | DebuggedProcesses | Gets the list of processes currently being debugged. |
![]() | DTE | Gets the top-level extensibility object. |
![]() | HexDisplayMode | Gets or sets whether expressions are output in hexadecimal or decimal format. |
![]() | HexInputMode | Gets or sets whether expressions are evaluated in hexadecimal or decimal format. |
![]() | Languages | Gets a list of languages that the debugger supports. |
![]() | LastBreakReason | Gets the last reason that a program was broken. If the program is running it returns DBG_REASON_NONE. |
![]() | LocalProcesses | Gets the list of processes currently running on this machine. |
![]() | Parent | Gets the immediate parent object of a Debugger object. |
| Name | Description | |
|---|---|---|
![]() | Break(Boolean) | Causes the given process to pause its execution so that its current state can be analyzed. |
![]() | DetachAll() | Detaches from all attached programs. |
![]() | ExecuteStatement(String^, Int32, Boolean) | Executes the specified statement. If the TreatAsExpression flag is true, then the string is interpreted as an expression, and output is sent to the Command Window. |
![]() | GetExpression(String^, Boolean, Int32) | Evaluates an expression based on the current stack frame. If the expression can be parsed but not evaluated, an object is returned but will not contain a valid value. |
![]() | Go(Boolean) | Starts executing the program from the current statement. |
![]() | RunToCursor(Boolean) | Executes the program to the current position of the source file cursor. |
![]() | SetNextStatement() | Sets the next instruction to be executed, according to the cursor position in the current source file. |
![]() | StepInto(Boolean) | Steps into the next function call, if possible. |
![]() | StepOut(Boolean) | Steps out of the current function. |
![]() | StepOver(Boolean) | Steps over the next function call. |
![]() | Stop(Boolean) | Stops debugging, terminating, or detaching from all attached processes. |
![]() | TerminateAll() | Terminates all processes. |
The following example demonstrates how to use Debugger object.
// 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; }

