Program nodes
Applies to: Visual Studio Visual 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
In the debugger architecture, a program node:
Is a lightweight description of a program.
Can identify itself and the process it's running in. A program node can be attached to, be detached from, and describe the debug engine (DE) that created it, if any.
Is represented by an IDebugProgramNode2 interface, typically created by a DE or port. Program nodes are added to a port by calling AddProgramNode. When a program node is added to a port, it's added to the process containing the program that this program node represents.
Sometime after a debug session is started, depending on the implementation of the debug package, program nodes are used to create corresponding programs. When a process is queried for its programs, the programs are enumerated, one for each program node.
Before a program is attached to, the IDE needs only a lightweight description of the program. This information can be obtained from the program node. Once the program is attached to, the IDE displays more detailed information, such as a list of all threads running in the program. This information is obtained from the program itself.