ポートに通知する
プログラムを起動した後、次のようにポートに通知する必要があります。
ポートでは、新しいプログラム ノードを受け取ったときに、デバッグ セッションにプログラム作成イベントを送り返します。 このイベントには、プログラムを表すインターフェイスが含まれています。
デバッグ セッションでは、アタッチできるデバッグ エンジン (DE) の識別子をプログラムに対して照会します。
デバッグ セッションでは、そのプログラムで使用可能な DE のリストにその DE があるかどうかを確認します。 デバッグ セッションでは、最初にデバッグ パッケージによって渡されたソリューションのアクティブなプログラム設定から、このリストを取得します。
この使用可能リストに DE が存在する必要があります。そうでない場合、DE はプログラムにアタッチされません。
プログラムを使用して、ポートで最初に新しいプログラム ノードを受け取ると、そのプログラムを表す IDebugProgram2 インターフェイスが作成されます。
Note
これを、後でデバッグ エンジン (DE) によって作成される IDebugProgram2
インターフェイスと混同しないようにしてください。
ポートでは、COM の IConnectionPoint
インターフェイスを介して IDebugProgramCreateEvent2 プログラム作成イベントをセッション デバッグ マネージャー (SDM) に送り返します。
Note
これを、後で DE によって送信される IDebugProgramCreateEvent2
インターフェイスと混同しないようにしてください。
ポートでは、イベント インターフェイス自体と共に、IDebugPort2、IDebugProcess2、IDebugProgram2 インターフェイスを送信します。これらは、それぞれポート、プロセス、プログラムを表します。 SDM では、IDebugProgram2:: GetEngineInfo を呼び出して、プログラムをデバッグできる DE の GUID を取得します。 この GUID は、最初に IDebugProgramNode2 インターフェイスから取得されています。
SDM では、DE が使用可能な DE のリストにあるかどうかを確認します。 SDM では、最初にデバッグ パッケージによって渡されたソリューションのアクティブなプログラム設定から、このリストを取得します。 この使用可能リストに DE が存在する必要があります。そうでない場合、それはプログラムにアタッチされません。
DE の ID が判明すると、SDM でプログラムにアタッチする準備が完了します。