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.

In This Section

  • 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.

See Also

Other Resources

Getting Started with Debugger Extensibility