次の方法で共有


リモート ターゲット

リモート デバッグには、ホスト コンピューターであるコンピューター (リモート クライアントまたはサーバー) に応じて、2 つの異なる形式があります。 ホスト コンピューター は、デバッガー エンジン がアクティブになっているコンピューターです。 もう 1 つのコンピューターでは、デバッガー エンジンは、コマンドとデータをホスト エンジンに中継するプロキシとして機能するだけです。

すべてのデバッガー操作 (コマンドの実行、拡張機能の 、シンボルの読み込みなど) は、ホスト エンジンによって実行されます。 デバッガー セッションは、ホスト エンジンに対しても相対的です。

コンピューターで現在実行されているデバッグ サーバーとプロセス サーバーを一覧表示するには、outputServersを使用します。

サーバーのデバッグとクライアントのデバッグ

デバッグ サーバー は、ホストとして機能し、デバッグ クライアントからの接続をリッスンするデバッガー エンジンのインスタンスです。 StartServer メソッドは、デバッグ クライアントからの接続のリッスンを開始するようにデバッガー エンジンに指示します。

デバッグ クライアント は、デバッガー コマンドと I/O をデバッグ サーバーに送信する、プロキシとして機能するデバッガー エンジンのインスタンスです。 DebugConnect 関数を使用して、デバッグ サーバーに接続できます。

DebugConnect によって返されるクライアント オブジェクトは、デバッグ サーバー上のデバッガー セッションに自動的に参加しません。 ConnectSession メソッドを使用してセッションに参加し、入力と出力を同期できます。

デバッグ サーバーとデバッグ クライアントの間の通信は、ほとんどの場合、デバッガー コマンドとサーバーに送信された RPC 呼び出しと、クライアントに送り返されるコマンド出力で構成されます。

プロセス サーバー、カーネル接続サーバー、およびスマート クライアント

プロセス サーバーカーネル接続サーバー は、プロキシとして機能し、スマート クライアントからの接続をリッスンし、これらのリモート クライアントから要求されたメモリ、プロセッサ、またはオペレーティング システムの操作を実行するデバッガー エンジンの両方のインスタンスです。 プロセス サーバー は、同じコンピューターで実行されているプロセスのデバッグを容易にします。 カーネル接続サーバー は、接続サーバーを実行しているコンピューターに接続されている Windows カーネル デバッグ ターゲットのデバッグを容易にします。 プロセス サーバーは、StartProcessServer または DbgSrvプログラム API メソッドを使用して起動できます。 WaitForProcessServerEnd メソッドは、StartProcessServer で開始されたプロセス サーバーが終了するまで待機します。 カーネル接続サーバーは、KdSrvプログラムを使用してアクティブ化できます。

スマート クライアント は、ホスト エンジンとして機能し、プロセス サーバーに接続されているデバッガー エンジンのインスタンスです。 ConnectProcessServer メソッドは、プロセス サーバーに接続します。 接続したら、「Live User-Mode Targets」で説明されている方法を使用できます。

リモート クライアントがプロセス サーバーで終了すると、DisconnectProcessServerを使用して切断できます。または、EndProcessServer を使用してプロセス サーバーのシャットダウンを要求できます。 実行中のコンピューターからプロセス サーバーをシャットダウンするには、タスク マネージャーを使用してプロセスを終了します。 StartProcessServer 使用したデバッガー エンジンのインスタンスが引き続き実行されている場合は、Execute を使用して、プロセス サーバーを終了する .endsrv 0デバッガー コマンドを発行できます (これは、通常はプロセス サーバーに影響を与えない .endsrvの通常の動作の例外です)。

プロセス サーバーとスマート クライアントの間の通信は、通常、低レベルのメモリ、プロセッサ、オペレーティング システムの操作と、リモート クライアントからサーバーに送信される要求で構成されます。 その結果はクライアントに送り返されます。