Program Nodes
Note
This article applies to Visual Studio 2015. 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 terms of the debugger architecture, a program node:
Is a lightweight description of a program.
Can identify itself and the process it is running in, and 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 is 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 needs to display more detailed information, such as a list of all threads running in the program. This information is obtained from the program itself.
See Also
Programs
Processes
Debug Engine
Debugger Concepts
IDebugProgramNode2
AddProgramNode