Creating a Custom Debug Engine


The new home for Visual Studio documentation is Visual Studio 2017 Documentation on

The latest version of this topic can be found at Creating a Custom Debug Engine.

A debug engine (DE) is a component that allows debugging of particular run-time architectures. There is typically only one DE implementation per run-time environment.

System_CAPS_ICON_note.jpg Note

While there are separate DE implementations for Transact-SQL and JScript, VBScript and JScript share a single DE.

A DE works with the interpreter or operation system to provide such debugging services as execution control, breakpoints, and expression evaluation. These services are implemented through the DE interfaces and can cause the debugger to transition between different operational modes. For more information, see Operational Modes.

Creating a DE consists of the following steps:

  1. Registering a DE with Visual Studio

  2. Enabling a program to be debugged

  3. Execution control and state evaluation

  4. Sending events

  5. Termination and detaching

Registering a Custom Debug Engine
Explains the steps needed to register a debug engine with Visual Studio so that it can be used.

Enabling a Program to Be Debugged
Explains that before your DE can debug a program, you must first launch the DE or attach it to an existing program.

Execution Control and State Evaluation
Discusses why debugging an application requires implementing execution control features.

Sending Events
Describes communication between the debugger and the DE as an event model based on DCOM.

Termination and Detaching
Explains how to achieve normal termination, which means that there are no breakpoints, exceptions, run-time errors, or infinite loops in the application to be debugged.

Calling Debugger Events
Documents the calling order of the events occurring in a debugging session.

How To: Debug a Custom Debug Engine
Explains how to debug a custom DE.

Visual Studio Debugger Extensibility