Share via


Debugger concepts

Applies to: yesVisual Studio noVisual Studio for Mac

Note

This article applies to Visual Studio 2017. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here

To build on the Visual Studio debug package, you need to be familiar with the architectural concepts used in designing the package.

In this section

Debug session Explains the role of a session in the debugging architecture.

Servers Defines what a server is in terms of debugging architecture, in both abstract and physical terms.

Port suppliers Defines what a port supplier is in terms of debugging architecture.

Ports Defines what a port is in terms of debugging architecture.

Processes Defines what a process is in terms of debugging architecture.

Program nodes Defines a program node in terms of debugging architecture, including how it can identify itself and the process it is running in.

Programs Defines a program in terms of debugging architecture.

Threads Defines the characteristics of threads in terms of debugging architecture.

Stack frames Defines a stack frame in terms of debugging architecture. A stack frame is an abstraction of a stack that provides the execution context of a thread.

Modules Defines a module, in terms of debugging architecture, as a physical container of code, such as an executable file or a DLL.

Breakpoints Defines the three types of breakpoints—pending, bound, and error—in terms of debugging architecture.

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.

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

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