リモートデバッグ (デバッガエンジン)

リモート デバッグは、クライアントとターゲットの通信がネットワーク接続などを介して間接的に行われる場合に発生します。 リモート デバッグの場合、デバッガ エンジンの複数のインスタンスがターゲットのデバッグに関与する可能性があります。 ただし、これらのインスタンスのうちの 1 つだけがデバッグ セッションを担当します。 このインスタンスはホスト エンジンと呼ばれます。

可能な構成は多数あります。クライアント オブジェクトはホスト エンジン (スマート クライアント) で作成することも、エンジンの別のインスタンス (デバッグ クライアント) で作成することもできます。 ホスト エンジンはターゲット (デバッグ サーバー) に直接接続できます。 または、プロキシをターゲット (プロセス サーバーおよびカーネル接続サーバー) に直接接続することもできます。

複数のクライアントが同時にホスト エンジンに接続できます。 また、ホスト エンジンは同じデバッグ セッションで複数のターゲットに接続できます。 オプションで、クライアントとホスト エンジンの間、およびホスト エンジンと各ターゲットの間に 1 つ以上のプロキシを置くことができます。

スマート クライアントは、ホスト エンジンと直接通信するクライアント オブジェクトです。 デバッグ クライアントは、DebugConnect を呼び出すことによって作成されます。 クライアントは、エンジンの API のメソッド呼び出し (ホスト エンジンがクライアントのコールバック オブジェクトに対して行う呼び出しを含む) を表す RPC 呼び出しを使用してホスト エンジンと通信します。

デバッグ サーバーは、ターゲットと直接通信するエンジン インスタンスであり、ホスト エンジンでもあります。 プロセス サーバーとカーネル接続サーバーはターゲットと直接通信しますが、ホスト エンジンではありません。 ホスト エンジンは、低レベルのメモリ、プロセッサ、およびオペレーティング システムの要求を送信することによって、プロセス サーバーまたはカーネル接続サーバーと通信し、サーバーは結果を送り返します。

カーネル デバッグ用の一般的な 2 台のコンピュータのセットアップ (1 台のコンピュータがターゲットで、もう 1 台のコンピュータがホスト コンピュータ) は、(ホスト コンピュータ上に) エンジンのインスタンスが 1 つしか存在せず、リモート デバッグとはみなされません。 ターゲットと直接通信します。

追加情報

リモート デバッグの実行の詳細については、「リモート ターゲット」を参照してください。