Program Nodes

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 IDebugPortNotify2::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.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

© 2015 Microsoft