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

リモートデバッグには、2つの異なる場所で実行される2つのデバッガーが含まれます。Remote debugging involves two debuggers running at two different locations. デバッグを実行するデバッガーは、 デバッグサーバー と呼ばれます。The debugger that performs the debugging is called the debugging server. デバッグクライアント と呼ばれる2番目のデバッガーは、リモートの場所からデバッグセッションを制御します。The second debugger, called the debugging client, controls the debugging session from a remote location. リモートセッションを確立するには、まずデバッグサーバーをセットアップしてから、デバッグクライアントをアクティブにする必要があります。To establish a remote session, you must set up the debugging server first and then activate the debugging client.

デバッグ対象のコードは、デバッグサーバーを実行しているのと同じコンピューター上で実行されている場合もあれば、別のコンピューターで実行されている場合もあります。The code that is being debugged could be running on the same computer that is running the debugging server, or it could be running on a separate computer. デバッグサーバーでユーザーモードのデバッグを実行している場合は、デバッグ中のプロセスをデバッグサーバーと同じコンピューターで実行できます。If the debugging server is performing user-mode debugging, then the process that is being debugged can run on the same computer as the debugging server. デバッグサーバーでカーネルモードのデバッグを実行している場合は、通常、デバッグ対象のコードが別のターゲットコンピューターで実行されます。If the debugging server is performing kernel-mode debugging, then the code being debugged would typically run on a separate target computer.

次の図は、ホストコンピューター上で実行されているデバッグサーバーが、別のターゲットコンピューターで実行されているコードのカーネルモードデバッグを実行しているリモートセッションを示しています。The following diagram illustrates a remote session where the debugging server, running on a host computer, is performing kernel-mode debugging of code that is running on a separate target computer.

リモートコンピューター、ホストコンピューター、および対象コンピューターを示す図

リモートデバッグ接続に使用できるトランスポートプロトコルには、TCP、NPIPE、SPIPE、SSL、COM ポートのいくつかがあります。There are several transport protocols you can use for a remote debugging connection: TCP, NPIPE, SPIPE, SSL, and COM Port. プロトコルとして TCP を使用することを選択し、デバッグクライアントとデバッグサーバーの両方として WinDbg を使用することを選択したとします。Suppose you have chosen to use TCP as the protocol and you have chosen to use WinDbg as both the debugging client and the debugging server. リモートカーネルモードのデバッグセッションを確立するには、次の手順に従います。You can use the following procedure to establish a remote kernel-mode debugging session:

  1. ホストコンピューターで、WinDbg を開き、対象のコンピューターでカーネルモードのデバッグセッションを確立します。On the host computer, open WinDbg and establish a kernel-mode debugging session with a target computer. (「 WinDbg を使用したライブ Kernel-Mode デバッグ」を参照してください)。(See Live Kernel-Mode Debugging Using WinDbg.)

  2. [デバッグ] メニューの [中断] をクリックするか、CTRL + Break キーを押して中断します。Break in by choosing Break from the Debug menu or by pressing CTRL-Break.

  3. デバッガーの コマンドウィンドウで、次のコマンドを入力します。In the Debugger Command Window, enter the following command.

    。サーバー tcp: ポート = 5005.server tcp:port=5005

    メモ ポート番号5005は任意です。Note The port number 5005 is arbitrary. ポート番号は任意です。The port number is your choice.

  4. WinDbg は、次のような出力で応答します。WinDbg will respond with output similar to the following.

    Server started.  Client can connect with any of these command lines
    0: <debugger> -remote tcp:Port=5005,Server=YourHostComputer
    
  5. リモートコンピューターで、[WinDbg] を開き、[ファイル] メニューの [リモートセッションに接続] を選択します。On the remote computer, open WinDbg, and choose Connect to Remote Session from the File menu.

  6. [ 接続文字列] に、次の文字列を入力します。Under Connection String, enter the following string.

    tcp: Port = 5005、Server = 自分のhostcomputertcp:Port=5005,Server=YourHostComputer

    ここで、 Hostcomputer は、デバッグサーバーを実行しているホストコンピューターの名前です。where YourHostComputer is the name of your host computer, which is running the debugging server.

    [OK] を選択します。Select OK.

コマンドラインの使用Using the Command Line

前のセクションで説明した手順の代わりに、コマンドラインでリモートデバッグセッションを設定することもできます。As an alternative to the procedure given in the preceding section, you can set up a remote debugging session at the command line. たとえば、1394ケーブルを使用し32て、ホストコンピューターとターゲットコンピューターの間で、カーネルモードのデバッグセッションを確立するように設定しているとします。Suppose you are set up to establish a kernel-mode debugging session, between a host computer and a target computer, over a 1394 cable on channel 32. リモートデバッグセッションを確立するには、次の手順に従います。You can use the following procedure to establish a remote debugging session:

  1. ホストコンピューターで、コマンドプロンプトウィンドウに次のコマンドを入力します。On the host computer, enter the following command in a Command Prompt window.

    windbg-サーバー tcp: ポート = 5005 1394: channel = 32windbg -server tcp:port=5005 -k 1394:channel=32

  2. リモートコンピューターで、コマンドプロンプトウィンドウに次のコマンドを入力します。On the remote computer, enter the following command in a Command Prompt window.

    windbg-リモート tcp: ポート = 5005、Server = 自分のhostcomputerwindbg -remote tcp:Port=5005,Server=YourHostComputer

    ここで、 Hostcomputer は、デバッグサーバーを実行しているホストコンピューターの名前です。where YourHostComputer is the name of your host computer, which is running the debugging server.

追加情報Additional Information

このトピックに記載されている以外に、リモートデバッグを確立するにはさまざまな方法があります。There are many ways to establish remote debugging other than the ones shown in this topic. WinDbg デバッガーコマンドウィンドウでのデバッグサーバーの設定の詳細については、「 . サーバー (デバッグサーバーの作成)」を参照してください。For complete information about setting up a debugging server in the WinDbg Debugger Command Window, see .server (Create Debugging Server). コマンドラインで WinDbg を起動する (およびリモートデバッグを確立する) 方法の詳細については、「 windbg Command-Line Options」を参照してください。For complete information about launching WinDbg (and establishing remote debugging) at the command line, see WinDbg Command-Line Options.