次の方法で共有


WinDbg を使用したリモート デバッグ

リモート デバッグを使用すると、別のコンピューターで実行されているコードをデバッグできます。 このガイドでは、デバッグ サーバーを設定し、デバッグ クライアントを接続してデバッグ セッションをリモートで制御する方法について説明します。 両方のコンポーネントを構成する正確な手順について説明します。

デバッグするコードは、デバッグ サーバーと同じコンピューターで実行されるか、別のコンピューターで実行される可能性があります。 デバッグ サーバーがユーザー モード デバッグを実行する場合、デバッグするプロセスは、デバッグ サーバーと同じコンピューターで実行できます。 デバッグ サーバーがカーネル モードデバッグを実行する場合、デバッグするコードは通常、別のターゲット コンピューターで実行されます。

この図は、一般的なリモート デバッグセットアップで 3 台のコンピューターがどのように連携するかを示しています。

カーネル モード デバッグ用に接続されたリモート コンピューター、ホスト コンピューター、およびターゲット コンピューターを示す図のスクリーンショット。

重要

リモート デバッグでは、システムが潜在的なセキュリティ リスクにさらされます。 続行する前に、

リモート デバッグ接続には、TCP、NPIPE、SPIPE、SSL、COM ポートなど、複数のトランスポート プロトコルを使用できます。 プロトコルとして TCP を選択し、デバッグ クライアントとデバッグ サーバーの両方として WinDbg を選択するとします。 リモート カーネル モード デバッグ セッションを確立するには、次の手順に従います。

  1. ホスト コンピューターで WinDbg を開き、ターゲット コンピューターとのカーネル モード デバッグ セッションを確立します。 (「WinDbg (クラシック) を使用したライブ カーネル モード デバッグ」を参照してください。)

  2. [デバッグ] メニューから [ブレーク] を選択するか、CTRL-Break を押してブレークインします。

  3. デバッガー コマンド ウィンドウで、次のコマンドを入力します。

    .server tcp:port=5005

    ポート番号 5005 は任意です。 ポート番号を選択します。

  4. WinDbg は、次のような出力で応答します。 接続文字列をコピーします。次の手順で必要になります。

    Server started.  Client can connect with any of these command lines
    0: <debugger> -remote tcp:Port=5005,Server=YourHostComputer
    
  5. リモート コンピューターで WinDbg を開き、[ファイル] メニューから [リモート セッションに接続] を選択します。

  6. [接続文字列] に次の文字列を入力します。

    tcp:Port=5005,Server=YourHostComputer

    YourHostComputer は、デバッグ サーバーを実行するホスト コンピューターの名前です。

    [OK] を選択します。

コマンド ラインの使用

前のセクションの手順の代わりに、コマンド ラインでリモート デバッグ セッションを設定できます。 チャネル 32 の 1394 ケーブルを使用して、ホスト コンピューターとターゲット コンピューターの間でカーネル モード デバッグ セッションを確立するとします。 リモート デバッグ セッションを確立するには、次の手順に従います。

  1. ホスト コンピュータのコマンド プロンプト ウィンドウに次のコマンドを入力します。

    Windbg -server tcp:port=5005 -k 1394:channel=32

  2. サーバーが起動するまで待ちます。 接続の詳細を示す確認メッセージが表示されます。 手順 3 に進む前に、この接続文字列をコピーします。

  3. リモート コンピューターのコマンド プロンプト ウィンドウに次のコマンドを入力します。

    windbg -remote tcp:Port=5005,Server=YourHostComputer

    YourHostComputer は、デバッグ サーバーを実行するホスト コンピューターの名前です。

重要

1394 トランスポートは、Windows 10 バージョン 1607 およびそれ以前で使用できます。 それ以降のバージョンの Windows では使用できません。 イーサネットを使用して、KDNET などの他のトランスポートにプロジェクトを移行します。 そのトランスポートの詳細については、「KDNET ネットワーク カーネル デバッグの自動設定」を参照してください。

次のステップ

リモート デバッグは、このトピックに示されている方法以外の多くの方法で確立できます。