ポートに通知する

プログラムを起動した後、次のようにポートに通知する必要があります。

  1. ポートは、新しいプログラム ノードを受信すると、プログラム作成イベントをデバッグ セッションに送り返します。 イベントには、プログラムを表すインターフェイスが含まれます。

  2. デバッグ セッションは、アタッチできるデバッグ エンジン (DE) の識別子をプログラムに照会します。

  3. デバッグ セッションは、DE がそのプログラムの許可されている DE の一覧に含まれているかどうかを確認します。 デバッグ セッションは、ソリューションのアクティブなプログラム設定からこのリストを取得します。最初はデバッグ パッケージによって渡されます。

    DE は許可リストに含まれている必要があります。そうしないと、DE はプログラムにアタッチされません。

    プログラムによって、ポートが最初に新しいプログラム ノードを受信すると、プログラムを表す IDebugProgram2 インターフェイスが作成されます。

注

これは、デバッグ エンジン (DE) によって後で作成された IDebugProgram2 インターフェイスと混同しないでください。

このポートは、COM インターフェイスを使用してIConnectionPoint プログラム作成イベントをセッション デバッグ マネージャー (SDM) に送り返します。

注

これは、DE によって後で送信される IDebugProgramCreateEvent2 インターフェイスと混同しないでください。

イベント インターフェイス自体と共に、ポートは、それぞれポート、プロセス、およびプログラムを表す IDebugPort2、 IDebugProcess2、および IDebugProgram2 インターフェイスを送信します。 SDM は IDebugProgram2::GetEngineInfo を呼び出して、プログラムをデバッグできる DE の GUID を取得します。 GUID は、もともと IDebugProgramNode2 インターフェイスから取得されました。

SDM は、DE が許可される DE の一覧に含まれているかどうかを確認します。 SDM は、最初にデバッグ パッケージによって渡されたソリューションのアクティブなプログラム設定からこのリストを取得します。 DE は許可リストに含まれている必要があります。そうしないと、プログラムにアタッチされません。

DE の ID がわかったら、SDM はプログラムにアタッチする準備が整います。