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

デバッガー エンジンとのやり取りのほとんどは、クライアント オブジェクトを介して行われます。多くの場合、単にクライアントと呼ばれます。 各クライアントは、最上位レベルのエンジン インターフェイスの実装を提供します。 各インターフェイスには異なる一連のメソッドが用意されています。これは、エンジンとやり取りし、エンジンを介してターゲットを操作するために使用できます。 エンジンのインスタンスには、それぞれ独自の状態を持つ多数のクライアントを含めることができます。

プライマリ クライアント

プライマリ クライアントは、現在のデバッグ セッションに参加しているクライアントです。 最初は、新しいクライアント オブジェクトが作成されるときに、プライマリ クライアントではありません。 クライアントは、ターゲットの取得に使用される場合 ( たとえば、CreateProcess2 を呼び出すことによって) プライマリ クライアントになるか、 ConnectSession を使用してデバッグ セッションに接続されます。 デバッガー コマンド .clients には、プライマリ クライアントのみが一覧表示されます。

コールバック オブジェクト

コールバック オブジェクトは、各クライアントに登録できます。 コールバック オブジェクトには、次の 3 種類があります。

  1. 入力コールバック オブジェクト (または 入力コールバック): エンジンは入力コールバックを呼び出して入力を要求します。 たとえば、コンソール ウィンドウを備えたデバッガーでは、ユーザーからの入力をエンジンに提供する入力コールバックを登録したり、デバッガーで入力コールバックを登録してエンジンにファイルからの入力を提供したりすることができます。

  2. 出力コールバック オブジェクト (または 出力コールバック): エンジンは出力コールバックを呼び出して出力を表示します。 たとえば、コンソール ウィンドウを備えたデバッガーでは、デバッガーの出力をユーザーに表示する出力コールバックを登録したり、デバッガーで出力コールバックを登録して出力をログ ファイルに送信したりすることができます。

  3. イベント コールバック オブジェクト (または イベント コールバック): エンジンは、イベントがターゲットで発生するたびにイベント コールバックを呼び出します (またはエンジンの状態が変更された場合)。 たとえば、デバッガー拡張機能ライブラリでは、特定のイベントを監視したり、特定のイベントが発生したときに自動アクションを実行したりするためのイベント コールバックを登録できます。

リモート デバッグ

クライアント オブジェクトは、ホスト エンジンのリモート インスタンスへの通信を容易にします。 DebugConnect 関数は、リモート エンジン インスタンスに接続されているクライアント オブジェクトを作成します。このクライアントで呼び出されるメソッドはリモート エンジンによって実行され、クライアントにローカルに登録されているコールバック オブジェクトは、リモート エンジンがコールバック呼び出しを行うときに呼び出されます。

追加情報

クライアント オブジェクトの作成と使用の詳細については、「コールバック オブジェクトの 使用」を参照してください。 コールバック オブジェクトの登録の詳細については、「コールバック オブジェクトの使用」を参照してください。