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