デバッガー アーキテクチャでは、次の プログラムが実行されます。
一連のスレッドとモジュールのセットの両方のコンテナーです。 プログラムには、Windows オペレーティング システムに単一の類推はありません。
プログラムはサブプロセスの一種です。 たとえば、Web サイトをデバッグする場合、スクリプトはプログラムと見なすことができます。 スクリプトは、他のスクリプトとは無関係にスクリプト エンジン プロセスで実行されますが、独自のスレッドのセットもあります。 デバッグ エンジン (DE) は、プロセスやスレッドではなく、プログラムにアタッチします。
自身とそれが実行されているプロセスを識別できます。 プログラムは、アタッチしたり、デタッチしたり、存在する場合はそれを作成した DE を記述したりすることができます。 プログラムは、実行、停止、続行、終了することもできます。
すべてのスレッドを列挙できます。 プログラムは、独自の逆アセンブリ ストリームを提供したり、特定のドキュメント位置のすべてのコード コンテキストを列挙したりすることもできます。
IDebugProgram2 インターフェイスによって表され、プログラムがアタッチされる前に作成されるか、実装に応じてアタッチ プロセスの一部として作成されます。 ポートがプロセスのプログラムを列挙すると、各プログラムは、AddProgramNode に引数として渡される対応する IDebugProgramNode2 インターフェイスに従って作成されます。 デバッグ エンジンでは、プログラムを表す
IDebugProgram2インターフェイスも作成されますが、これらのプログラムはプログラム ノードに従って作成されません。 DE によって作成されたIDebugProgramNode2インターフェイスは実際のデバッグに使用されますが、ポートによって作成されたインターフェイスは、プロセスで実行されているプログラムを検出するためにのみ使用されます。