Debugger Debugger Debugger Debugger Debugger Debugger Interface

Definition

The Debugger object is used to interrogate and manipulate the state of the debugger and the program being debugged.

public interface class Debugger
public interface class Debugger
__interface Debugger
[System.Runtime.InteropServices.Guid("338FB9A0-BAE5-11D2-8AD1-00C04F79E479")]
[System.Runtime.InteropServices.TypeLibType(4160)]
public interface Debugger
type Debugger = interface
Public Interface Debugger
Derived
Attributes

Examples

The following example demonstrates how to use Debugger object.

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

Remarks

The debugger is available through the DTE object by way of its Debugger property, as shown in the example below. One debugger object is available for each instance of the development environment.

Properties

AllBreakpointsLastHit AllBreakpointsLastHit AllBreakpointsLastHit AllBreakpointsLastHit AllBreakpointsLastHit AllBreakpointsLastHit

Gets a collection of bound breakpoints that were last simultaneously hit.

BreakpointLastHit BreakpointLastHit BreakpointLastHit BreakpointLastHit BreakpointLastHit BreakpointLastHit

Gets the last breakpoint hit.

Breakpoints Breakpoints Breakpoints Breakpoints Breakpoints Breakpoints

Gets a collection of breakpoints.

CurrentMode CurrentMode CurrentMode CurrentMode CurrentMode CurrentMode

Gets the current mode of the debugger within the context of the integrated development environment (IDE).

CurrentProcess CurrentProcess CurrentProcess CurrentProcess CurrentProcess CurrentProcess

Sets or gets the active process.

CurrentProgram CurrentProgram CurrentProgram CurrentProgram CurrentProgram CurrentProgram

Sets or gets the active program.

CurrentStackFrame CurrentStackFrame CurrentStackFrame CurrentStackFrame CurrentStackFrame CurrentStackFrame

Sets or gets the current stack frame.

CurrentThread CurrentThread CurrentThread CurrentThread CurrentThread CurrentThread

Sets or gets the current thread being debugged.

DebuggedProcesses DebuggedProcesses DebuggedProcesses DebuggedProcesses DebuggedProcesses DebuggedProcesses

Gets the list of processes currently being debugged.

DTE DTE DTE DTE DTE DTE

Gets the top-level extensibility object.

HexDisplayMode HexDisplayMode HexDisplayMode HexDisplayMode HexDisplayMode HexDisplayMode

Gets or sets whether expressions are output in hexadecimal or decimal format.

HexInputMode HexInputMode HexInputMode HexInputMode HexInputMode HexInputMode

Gets or sets whether expressions are evaluated in hexadecimal or decimal format.

Languages Languages Languages Languages Languages Languages

Gets a list of languages that the debugger supports.

LastBreakReason LastBreakReason LastBreakReason LastBreakReason LastBreakReason LastBreakReason

Gets the last reason that a program was broken. If the program is running it returns DBG_REASON_NONE.

LocalProcesses LocalProcesses LocalProcesses LocalProcesses LocalProcesses LocalProcesses

Gets the list of processes currently running on this machine.

Parent Parent Parent Parent Parent Parent

Gets the immediate parent object of a Debugger object.

Methods

Break(Boolean) Break(Boolean) Break(Boolean) Break(Boolean) Break(Boolean) Break(Boolean)

Causes the given process to pause its execution so that its current state can be analyzed.

DetachAll() DetachAll() DetachAll() DetachAll() DetachAll() DetachAll()

Detaches from all attached programs.

ExecuteStatement(String, Int32, Boolean) ExecuteStatement(String, Int32, Boolean) ExecuteStatement(String, Int32, Boolean) ExecuteStatement(String, Int32, Boolean) ExecuteStatement(String, Int32, Boolean) 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) GetExpression(String, Boolean, Int32) GetExpression(String, Boolean, Int32) GetExpression(String, Boolean, Int32) GetExpression(String, Boolean, Int32) 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) Go(Boolean) Go(Boolean) Go(Boolean) Go(Boolean) Go(Boolean)

Starts executing the program from the current statement.

RunToCursor(Boolean) RunToCursor(Boolean) RunToCursor(Boolean) RunToCursor(Boolean) RunToCursor(Boolean) RunToCursor(Boolean)

Executes the program to the current position of the source file cursor.

SetNextStatement() SetNextStatement() SetNextStatement() SetNextStatement() SetNextStatement() SetNextStatement()

Sets the next instruction to be executed, according to the cursor position in the current source file.

StepInto(Boolean) StepInto(Boolean) StepInto(Boolean) StepInto(Boolean) StepInto(Boolean) StepInto(Boolean)

Steps into the next function call, if possible.

StepOut(Boolean) StepOut(Boolean) StepOut(Boolean) StepOut(Boolean) StepOut(Boolean) StepOut(Boolean)

Steps out of the current function.

StepOver(Boolean) StepOver(Boolean) StepOver(Boolean) StepOver(Boolean) StepOver(Boolean) StepOver(Boolean)

Steps over the next function call.

Stop(Boolean) Stop(Boolean) Stop(Boolean) Stop(Boolean) Stop(Boolean) Stop(Boolean)

Stops debugging, terminating, or detaching from all attached processes.

TerminateAll() TerminateAll() TerminateAll() TerminateAll() TerminateAll() TerminateAll()

Terminates all processes.

Applies to