リモート デバッグ セッションの制御

リモート セッションが開始されたら、デバッグ サーバーまたはデバッグ クライアントにコマンドを入力できます。 複数のクライアントがある場合は、どのクライアントでもコマンドを入力できます。 Enter キーを押すと、コマンドがデバッグ サーバーに送信され、実行されます。

1 人のユーザーがコマンドを入力するたびに、すべてのユーザーにコマンド自体とその出力が表示されます。 このコマンドがデバッグ クライアントから発行された場合、他のすべてのユーザーに、コマンドを発行したユーザーの ID がコマンドの前に表示されます。 デバッグ サーバーから発行されたコマンドには、このプレフィックスは付きません。

1 人のユーザーがコマンドを実行した後は、KD または CDB 経由で接続されている他のユーザーには、新しいコマンド プロンプトは表示されません。 一方で、デバッガー エンジンが実行中である場合でも、WinDbg のユーザーには、デバッガー コマンド ウィンドウの下部パネルにプロンプトが継続的に表示されます。 これらのどちらもアラームの原因にはなりません。どのユーザーも、いつでもコマンドを入力でき、エンジンは、受信した順序でこれらのコマンドを実行します。

WinDbg インターフェイスを介して行われたアクションは、デバッグ サーバーでも実行されます。

ユーザー間の通信

新しいデバッグ クライアントがセッションに接続するたびに、他のすべてのユーザーに、このクライアントが接続したというメッセージが表示されます。 クライアントが切断したときは、メッセージは表示されません。

.clients (デバッグ クライアントの一覧表示) コマンドを使用すると、デバッグ セッションに現在接続されているすべてのクライアントが一覧表示されます。

.echo (コメントのエコー) コマンドは、ユーザー間でメッセージを送信するのに便利です。

WinDbg ワークスペース

WinDbg がデバッグ クライアントとして使用されている場合、そのワークスペースには、グラフィカル インターフェイスを介して設定された値のみが保存されます。 デバッガー コマンド ウィンドウで行われた変更は保存されません。 (これにより、デバッガー コマンド ウィンドウはすべてのクライアントとデバッグ サーバーからの入力を受け入れるため、ローカル クライアントによって行われた変更のみが反映されます)。

ファイル パス

シンボル パス、実行可能イメージ パス、および拡張 DLL パスはすべて、デバッグ サーバー上の Windows デバッグ ツールのインストール フォルダーを基準としたファイル パスとして解釈されます。

WinDbg をデバッグ クライアントとして使用する場合は、独自のローカル ソース パスもあります。 すべてのソース関連コマンドは、ローカル コンピューター上のソース ファイルにアクセスします。 そのため、ソース コマンドを使用する任意のクライアントまたはサーバーで、適切なパスを設定する必要があります。

この複数パス システムを使用すると、デバッグ クライアントは、ソース ファイルを他のクライアントやサーバーと実際に共有することなく、ソース関連のコマンドを使用できます。 これは、ユーザーの 1 人がアクセスできるプライベートまたは機密のソース ファイルがある場合に便利です。

デバッグ サーバーのキャンセル

.endsrv (デバッグ サーバーの終了) コマンドを使用して、デバッグ サーバーを終了することができます。 デバッガーで複数のデバッグ サーバーが確立されている場合は、一部のデバッグ サーバーをキャンセルするのと同時に、それ以外のサーバーを実行したままにできます。

サーバーを終了すると、それ以降のクライアントはそのサーバーにアタッチできなくなります。 そのサーバー経由で現在接続されているクライアントは切断されません。

デバッガーの終了とセッションの終了

サーバーを終了せずに 1 つのデバッグ クライアントから終了するには、その特定のクライアントからコマンドを発行する必要があります。 このクライアントが KD または CDB である場合は、Ctrl + B キーを使用して終了します。 KD または CDB を使用するスクリプトを実行している場合は、.remote_exit (デバッグ クライアントの終了) を使用します。 クライアントが WinDbg の場合は、[ファイル] メニューから [終了] を選択して終了します。

セッション全体を終了し、デバッグ サーバーを終了するには、q (終了) コマンドを使用します。 このコマンドは、任意のサーバーまたはクライアントから入力でき、すべてのユーザーでセッション全体を終了します。