次の方法で共有


クライアント オブジェクトとエンジン

EngExtCpp 拡張機能は、クライアント オブジェクトを介してデバッガー エンジンと対話します。 クライアント オブジェクトへのポインターは、ExtExtension 基底クラスのメンバーを介して拡張機能に提供されます。 以下のメンバーによって、エンジン API インターフェイスの最初のバージョンへのアクセスが提供されます。

エンジン API インターフェイス ExtExtension メンバー

IDebugAdvanced

m_Advanced

IDebugClient

m_Client

IDebugControl

m_Control

IDebugDataSpaces

m_Data

IDebugRegisters

m_Registers

IDebugSymbols

m_Symbols

IDebugSystemObjects

m_System

以下のメンバーによって、エンジン API インターフェイスの新しいバージョンへのアクセスが提供されます。 これらのインターフェイスは、デバッガー エンジンのすべてのバージョンで使用できるわけではありません。 使用できない場合、使用を試みると例外がスローされます。

エンジン API インターフェイス ExtExtension メンバー

IDebugAdvanced2

m_Advanced2

IDebugAdvanced3

m_Advanced3

IDebugClient2

m_Client2

IDebugClient3

m_Client3

IDebugClient4

m_Client4

IDebugClient5

m_Client5

IDebugControl2

m_Control2

IDebugControl3

m_Control3

IDebugControl4

m_Control4

IDebugData2

m_Data2

IDebugData3

m_Data3

IDebugData4

m_Data4

IDebugRegisters2

m_Registers2

IDebugSymbols2

m_Symbols2

IDebugSymbols3

m_Symbols3

IDebugSystemObjects2

m_System2

IDebugSystemObjects3

m_System3

IDebugSystemObjects4

m_System4

これらのテーブルのメンバーは、拡張機能ライブラリを使用して拡張コマンドを実行したり、出力用の構造体を書式設定したりするたびに初期化されます。 タスクが完了すると、これらのメンバーは初期化されません。 したがって、拡張機能ではこれらのメンバーの値をキャッシュせずに、ExtExtension メンバーを直接使用する必要があります。

拡張機能ライブラリでは、IDebugClient::CreateClient メソッドを使用するか、DebugCreate 関数または DebugConnect 関数を使用して、独自のクライアント オブジェクトを作成することもできます。

クライアント オブジェクトの概要については、「クライアント オブジェクト」を参照してください。