Debugger3 Interface
Debugger3 is used to interrogate and manipulate the state of the debugger and the program being debugged. Debugger3 supersedes the Debugger2 and Debugger interfaces.
Namespace: EnvDTE90
Assembly: EnvDTE90 (in EnvDTE90.dll)
Syntax
'Declaration
<GuidAttribute("87DFC8DA-67B4-4954-BB89-6A277A50BAFC")> _
Public Interface Debugger3 _
Inherits Debugger2
[GuidAttribute("87DFC8DA-67B4-4954-BB89-6A277A50BAFC")]
public interface Debugger3 : Debugger2
[GuidAttribute(L"87DFC8DA-67B4-4954-BB89-6A277A50BAFC")]
public interface class Debugger3 : Debugger2
[<GuidAttribute("87DFC8DA-67B4-4954-BB89-6A277A50BAFC")>]
type Debugger3 =
interface
interface Debugger2
end
public interface Debugger3 extends Debugger2
The Debugger3 type exposes the following members.
Properties
Name | Description | |
---|---|---|
AllBreakpointsLastHit | (Inherited from Debugger2.) | |
AllBreakpointsLastHit | Gets a collection of bound breakpoints that were last simultaneously hit. | |
BreakpointLastHit | (Inherited from Debugger2.) | |
BreakpointLastHit | Gets the last breakpoint hit. | |
Breakpoints | (Inherited from Debugger2.) | |
Breakpoints | Gets a collection of breakpoints. | |
CurrentMode | (Inherited from Debugger2.) | |
CurrentMode | Gets the current mode of the debugger within the context of the IDE. | |
CurrentProcess | (Inherited from Debugger2.) | |
CurrentProcess | Gets or sets the active process. | |
CurrentProgram | (Inherited from Debugger2.) | |
CurrentProgram | Sets or returns the active program. | |
CurrentStackFrame | (Inherited from Debugger2.) | |
CurrentStackFrame | Gets or sets the current stack frame. | |
CurrentThread | (Inherited from Debugger2.) | |
CurrentThread | Gets or sets the current thread being debugged. | |
DebuggedProcesses | (Inherited from Debugger2.) | |
DebuggedProcesses | Gets the list of processes that are being debugged. | |
DTE | (Inherited from Debugger2.) | |
DTE | Gets the top-level extensibility object. | |
ExceptionGroups | Gets the exception settings for the debugger. For each exception, these settings determine whether the debugger gives the code an opportunity to handle the exception before the debugger breaks execution. | |
ForceContinue | Gets or sets a value that determines whether the debugger breaks or continues when a tracepoint or breakpoint finishes executing a macro. The default behavior is set by the user in the dialog box when the tracepoint or breakpoint is created. This property can be used to change the default behavior. | |
HexDisplayMode | (Inherited from Debugger2.) | |
HexDisplayMode | Gets or sets a value that indicates whether the expressions are output in hexadecimal or decimal format. | |
HexInputMode | (Inherited from Debugger2.) | |
HexInputMode | Gets or sets a value that indicates whether the expressions are evaluated in hexadecimal or decimal format. | |
Languages | (Inherited from Debugger2.) | |
Languages | Gets a list of languages that the debugger supports. | |
LastBreakReason | (Inherited from Debugger2.) | |
LastBreakReason | Gets the last reason that a program was broken. If the program is running it returns DBG_REASON_NONE. | |
LocalProcesses | (Inherited from Debugger2.) | |
LocalProcesses | Gets the list of processes that currently running on this computer. | |
OnlyLoadSymbolsManually | Gets a value that determines whether symbols are loaded manually or automatically. The Visual Studio user can determine this setting in the Options dialog box. For more information about how to set this value within Visual Studio, see How to: Specify Symbol Locations and Loading Behavior. | |
Parent | (Inherited from Debugger2.) | |
Parent | Gets the immediate parent object of the Debugger3 object (DTE2). | |
SymbolCachePath | Gets a string that contains the path to the symbols cache used by Visual Studio when you download symbols from a symbols server. You can specify the symbols cache path in the Options dialog box. For more information, see How to: Use a Symbol Server. | |
SymbolPath | Gets a string that contains paths to .PDB symbol files that are used by Visual Studio for debugging. The Visual Studio user can specify symbols paths in the Options dialog box. For more information, see How to: Specify Symbol Locations and Loading Behavior. | |
SymbolPathState | Gets a string that represents the state of all symbol paths for the .PDB symbol files that are used by Visual Studio for debugging. | |
Transports | (Inherited from Debugger2.) | |
Transports | Gets a collection of supported debugging transports. |
Top
Methods
Name | Description | |
---|---|---|
Break(Boolean) | (Inherited from Debugger2.) | |
Break(Boolean) | Causes the given process to pause its execution so that its current state can be analyzed. | |
DetachAll() | (Inherited from Debugger2.) | |
DetachAll() | Detaches from all attached programs. | |
ExecuteStatement(String, Int32, Boolean) | (Inherited from Debugger2.) | |
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) | (Inherited from Debugger2.) | |
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 does not contain a valid value. | |
GetExpression2(String, Boolean, Boolean, Int32) | (Inherited from Debugger2.) | |
GetExpression2(String, Boolean, 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 does not contain a valid value. This member function is similar to GetExpression but with an additional Boolean parameter, which can be set to true to indicate that the expression is to be evaluated as a statement. | |
GetProcesses(Transport, String) | (Inherited from Debugger2.) | |
GetProcesses(Transport, String) | ||
Go(Boolean) | (Inherited from Debugger2.) | |
Go(Boolean) | Starts executing the program from the current statement. | |
RunToCursor(Boolean) | (Inherited from Debugger2.) | |
RunToCursor(Boolean) | Executes the program to the current position of the source file cursor. | |
SetNextStatement() | (Inherited from Debugger2.) | |
SetNextStatement() | Sets the next instruction to be executed, according to the cursor position in the current source file. | |
SetSymbolSettings | Sets various settings for the .PDB symbols used by Visual Studio for debugging and forces reloading of all symbols. | |
StepInto(Boolean) | (Inherited from Debugger2.) | |
StepInto(Boolean) | Steps into the next function call, if possible. | |
StepOut(Boolean) | (Inherited from Debugger2.) | |
StepOut(Boolean) | Steps out of the current function. | |
StepOver(Boolean) | (Inherited from Debugger2.) | |
StepOver(Boolean) | Steps over the next function call. | |
Stop(Boolean) | (Inherited from Debugger2.) | |
Stop(Boolean) | Stops debugging and terminates or detaches from all attached processes. | |
TerminateAll() | (Inherited from Debugger2.) | |
TerminateAll() | Terminates all currently running debugging processes. | |
WriteMinidump(String, dbgMinidumpOption) | (Inherited from Debugger2.) | |
WriteMinidump(String, dbgMinidumpOption) |
Top
Remarks
The debugger is available through the DTE2 object through its Debugger property, as shown in the following example. One debugger object is available for each instance of the interactive development environment (IDE).
Examples
Imports System
Imports EnvDTE
Imports EnvDTE90
Imports EnvDTE90
Imports System.Diagnostics
Public Module Module1
'This function returns true if the debugger is actively debugging.
Function IsDebugging() As Boolean
Dim debugger As EnvDTE90.Debugger3
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 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 "dte90.olb" raw_interfaces_only named_guids
using namespace EnvDTE90;
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(&pDebugger3)) &&
pDebugger3
!= NULL){
dbgDebugMode mode;
if (SUCCEEDED(pDebugger3->get_CurrentMode(&mode))) {
if (mode != dbgDesignMode) {
printf("Debugger is active.\n");
nRet = 1;
}
else {
printf("Debugger is not active.\n");
}
}
}
}
}
CoUninitialize();
return nRet;
}