Debugger2 Interface

 

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

Namespace:   EnvDTE80
Assembly:  EnvDTE80 (in EnvDTE80.dll)

[GuidAttribute("8B5E2BFD-4642-4EFE-8AF4-0B2DA9AAA23C")]
public interface Debugger2 : Debugger

NameDescription
System_CAPS_pubpropertyAllBreakpointsLastHit

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

System_CAPS_pubpropertyBreakpointLastHit

Gets the last breakpoint hit.

System_CAPS_pubpropertyBreakpoints

Gets a collection of breakpoints.

System_CAPS_pubpropertyCurrentMode

Gets the current mode of the debugger within the context of the IDE.

System_CAPS_pubpropertyCurrentProcess

Gets or sets the active process.

System_CAPS_pubpropertyCurrentProgram

Sets or returns the active program.

System_CAPS_pubpropertyCurrentStackFrame

Gets or sets the current stack frame.

System_CAPS_pubpropertyCurrentThread

Gets or sets the current thread being debugged.

System_CAPS_pubpropertyDebuggedProcesses

Gets the list of processes currently being debugged.

System_CAPS_pubpropertyDTE

Gets the top-level extensibility object.

System_CAPS_pubpropertyHexDisplayMode

Gets or sets a value indicating whether the expressions are output in hexadecimal or decimal format.

System_CAPS_pubpropertyHexInputMode

Gets or sets a value indicating whether the expressions are evaluated in hexadecimal or decimal format.

System_CAPS_pubpropertyLanguages

Gets a list of languages that the debugger supports.

System_CAPS_pubpropertyLastBreakReason

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

System_CAPS_pubpropertyLocalProcesses

Gets the list of processes currently running on this machine.

System_CAPS_pubpropertyParent

Gets the immediate parent object of the Debugger2 object (DTE2).

System_CAPS_pubpropertyTransports

Gets a collection of supported debugging transports.

NameDescription
System_CAPS_pubmethodBreak(Boolean)

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

System_CAPS_pubmethodDetachAll()

Detaches from all attached programs.

System_CAPS_pubmethodExecuteStatement(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.

System_CAPS_pubmethodGetExpression(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.

System_CAPS_pubmethodGetExpression2(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.

System_CAPS_pubmethodGetProcesses(Transport, String)

Allows the caller to get a collection of processes from a remote machine.

System_CAPS_pubmethodGo(Boolean)

Starts executing the program from the current statement.

System_CAPS_pubmethodRunToCursor(Boolean)

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

System_CAPS_pubmethodSetNextStatement()

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

System_CAPS_pubmethodStepInto(Boolean)

Steps into the next function call, if possible.

System_CAPS_pubmethodStepOut(Boolean)

Steps out of the current function.

System_CAPS_pubmethodStepOver(Boolean)

Steps over the next function call.

System_CAPS_pubmethodStop(Boolean)

Stops debugging and terminates or detaches from all attached processes.

System_CAPS_pubmethodTerminateAll()

Terminates all currently running debugging processes.

System_CAPS_pubmethodWriteMinidump(String, dbgMinidumpOption)

If debugging a program and in Break mode, this function creates a minidump of the current debugging session.

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

// 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;
}
Return to top
Show: