Getting Started with Debugger Extensibility


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

The latest version of this topic can be found at Getting Started with Debugger Extensibility.

The Visual Studio SDK provides the information that you must have to create and customize debugger components used to debug programs from within the Visual Studio environment.

Visual Studio debugging has added improvements derived from the extensive usability testing performed on previous Visual Studio debuggers. You can use Visual Studio debugging to step through a multi-language application, or you can implement on-the-fly editing of variables while debugging applications and multi-language solutions.

Visual Studio debugging is executed out-of-process with the program being debugged and is therefore less intrusive in the process space of the application. Consequently, it is easier to write components that interact with the debugger without affecting your debugging program.

To best use the Visual Studio SDK, you should be familiar with the following:

  • The Visual Studio integrated development environment (IDE)

  • The C++ programming language


Roadmap for Extending the Debugger
Outlines the process of implementing debugging in your product, depending on your compiler and its output.

Debugger Components
Provides an overview of the Visual Studio debugging components, which include the debug engine (DE), expression evaluator (EE), and symbol handler (SH).

Debugger Concepts
Describes the main debugging architectural concepts.

Debugger Contexts
Explains how the debug engine (DE) operates simultaneously within code, documentation, and expression evaluation contexts. Describes, for each of the three contexts, the location, position or evaluation relevant to it.

Debugging Tasks
Contains links to various debugging tasks, such as launching a program and evaluating expressions.