Export (0) Print
Expand All

Debugger Object

Visual Studio .NET 2003

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

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.

DTE

   Debugger

[Visual Basic .NET]
Public Interface Debugger
   Inherits IDispatch
[Visual Basic 6]
Class Debugger
[C++]
interface Debugger : IDispatch
[C#]
public interface Debugger : IDispatch
[JScript .NET]
public interface Debugger extends IDispatch

Requirements

Namespace: EnvDTE

File: dte.olb

Example

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

Example

// 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 .NET 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;
}

See Also

Automation Object Model Chart | Debugger Object Properties, Methods, and Events | Debugging

Show:
© 2014 Microsoft