Share via


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