This documentation is archived and is not being maintained.

Debugging Tasks

To debug a program, it must be launched and a debug engine (DE) must be attached to it, or else the DE must be attached to a previously launched program. Once attached, the DE must generate certain startup events. In response, the debug package attempts to bind the breakpoints set in the IDE. When the program hits a bound breakpoint, it halts and waits for user input.

Security Issues

Discusses the security steps that are needed to debug a program.

Launching a Program

Provides step-by-step instructions on how to specify a DE, which calls the operating system to launch the program.

Attaching Directly to a Program

Describes the process used to debug a program in a process that is already running.

Sending Startup Events After a Launch

Lists the events that take place once the DE is attached to the program, until the program is at its main entry point and is ready for debugging.

Control of Execution

Explains how the DE typically sends an entry-point event, a load-complete event, or a stopping event, depending on the circumstances.

Binding Breakpoints

Describes how, if the user sets a breakpoint, the IDE formulates the request and prompts the debug session to create the breakpoint.

Evaluating Expressions

Explains how expressions are created and what happens when an expression is evaluated.

Visualizing and Viewing Data

Explains how type visualizers and custom viewers are supported by the expression evaluator (EE).

Debugger Concepts

Describes the main debugging architectural concepts.

Debugger Components

Provides an overview of the Visual Studio debugging components, which include the DE, EE, and symbol handler (SH).

Debugger Contexts

Explains how the 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.