Programs
在调试器架构中,程序:
是线程集和模块集的容器。 程序在 Windows 操作系统中没有单个类比。
程序是一种子进程。 例如,在调试网站时,脚本可以看作是一个程序。 尽管脚本在脚本引擎进程中独立运行,与其他脚本无关,但它也有自己的线程集。 调试引擎 (DE) 附加到程序,而不是附加到进程或线程上。
可以标识自身及其正在运行的进程。 程序可以附加到 DE 上,也可以从 DE 分离,并且可以描述创建它的调试引擎(如果有的话)。 程序还可以执行、停止、继续和终止。
可以枚举其所有线程。 程序还可以提供自己的反汇编流,并枚举给定文档位置的所有代码上下文。
程序由 IDebugProgram2 接口表示,在程序附加之前或作为附加过程的一部分创建,具体取决于实现方式。 当端口枚举进程的程序时,每个程序都是根据传递给 AddProgramNode 的相应 IDebugProgramNode2 接口创建。 虽然调试引擎还创建
IDebugProgram2
接口来表示程序,但这些程序不会根据程序节点创建。 DE 创建的IDebugProgramNode2
接口用于实际调试,而端口创建的接口仅用于发现哪些程序正在进程中运行。