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.