KDNET ネットワーク カーネル デバッグの自動設定

Windows 用のデバッグツールでは、ネットワーク経由でのカーネルデバッグがサポートされています。 このトピックでは、kdnet.exe セットアップツールを使用してネットワークデバッグを自動的に設定する方法について説明します。

デバッガーを実行するコンピューターは ホストコンピューターと呼ばれ、デバッグ中のコンピューターは ターゲットコンピューターと呼ばれます。 ホストコンピューターは Windows 7 以降を実行している必要があります。また、対象のコンピューターで Windows 8 以降が実行されている必要があります。

ホストコンピューターの IP アドレスを確認する

  1. ターゲットおよびホスト Pc がネットワークハブに接続されていること、または適切なネットワークケーブルを使用してスイッチが接続されていることを確認します。

  2. ホストコンピューターで、コマンドプロンプトウィンドウを開き、「 IPConfig 」と入力して IP 構成を表示します。

  3. コマンドの出力で、イーサネットアダプターの IPv4 アドレスを見つけます。

...

Ethernet adapter Ethernet:
...

IPv4 Address. . . . . . . . . . . : <YourHostIPAddress>
...

4. デバッグに使用するネットワークアダプターの IPv4 アドレスをメモしておきます。

ホストとターゲットコンピューターの設定

次の手順に従って、kdnet.exe ユーティリティを使用して、ターゲット PC でデバッガーの設定を自動的に構成します。

  1. Windows デバッグツールがホストシステムにインストールされていることを確認します。 デバッガーツールのダウンロードとインストールの詳細については、「 Windows 用デバッグツールのダウンロード」を参照してください。

  2. kdnet.exeVerifiedNICList.xmlファイルを見つけます。 既定では、これらはここにあります。

    C:\Program Files (x86)\Windows Kits\10\Debuggers\x64
    

    Note

    これらの手順では、両方の pc がターゲットとホストの両方で64ビットバージョンの Windows を実行していることを前提としています。 そうでない場合は、ターゲットが実行されているホストで同じ "ビット" のツールを実行するのが最善の方法です。 たとえば、ターゲットが32ビットの Windows を実行している場合は、ホストで32バージョンのデバッガーを実行します。 詳細については、「 32 ビットまたは64ビットのデバッグツールの選択」を参照してください。

  3. ホストコンピューターで、2つのファイルをネットワーク共有またはサムドライブにコピーして、対象のコンピューターで使用できるようにします。

  4. ターゲットコンピューターで、C:\KDNET ディレクトリを作成し、そのディレクトリに kdnet.exeVerifiedNICList.xml ファイルをコピーします。

    重要

    kdnet.exe を使用してブート情報を変更する前に、テスト PC で BitLocker やセキュアブートなどの Windows のセキュリティ機能を一時的に中断することが必要になる場合があります。 セキュリティ機能が無効になっている場合は、テストが完了し、テスト PC を適切に管理するときに、これらのセキュリティ機能を再び有効にします。

  5. ターゲット コンピューターで、管理者としてコマンド プロンプト ウィンドウを開きます。 次のコマンドを入力して、ターゲットコンピューターにサポートされているネットワークアダプターがあることを確認します。

    C:\KDNET>kdnet.exe
    Network debugging is supported on the following NICs:
    busparams=1.0.0, Broadcom NetXtreme Gigabit Ethernet, Plugged in.  
    This Microsoft hypervisor supports using KDNET in guest VMs.
    
  6. kdnet.exe からの出力は、ターゲットのネットワークアダプターがサポートされていることを示しているため、先に進むことができます。

  7. 次のコマンドを入力して、ホストシステムの IP アドレスを設定し、一意の接続キーを生成します。 IP アドレスまたはホストシステムの名前を使用します。 推奨される50000-50039 の範囲内で、使用するターゲット/ホストペアごとに一意のポートアドレスを選択します。

    C:\>kdnet.exe <HostComputerIPAddress> <YourDebugPort> 
    
    Enabling network debugging on Intel(R) 82577LM Gigabit Network Connection.
    Key=2steg4fzbj2sz.23418vzkd4ko3.1g34ou07z4pev.1sp3yo9yz874p
    
  8. 返されたキーをメモ帳の .txt ファイルにコピーします。

カーネルデバッグ用に WinDbg をターゲットに接続する

ホストコンピューターで、[WinDbg] を開きます。 [ ファイル ] メニューの [ カーネルデバッグ] をクリックします。 [カーネルデバッグ] ダイアログボックスで、[ Net ] タブを開きます。前の手順でメモ帳 .txt ファイルに保存したポート番号とキーを貼り付けます。 [OK] を選択します。

また、コマンドプロンプトウィンドウを開き、次のコマンドを入力して、WinDbg セッションを開始することもできます。ここで、 < ポートは上で選択したポートで、 >< キー > は上記の kdnet.exe によって返されたキーです。 前にメモ帳の .txt ファイルに保存したのキーを貼り付けます。

windbg -k -d net:port=<YourDebugPort>,key=<YourKey> 

この例に示す省略可能な-d パラメーターを使用すると、の初期の中断が有効になります。 詳細については、「 WinDbg Command-Line オプション」を参照してください。

ファイアウォール経由でのポートへのアクセスを WinDbg に許可するように求めるメッセージが表示された場合は、他の 3 つ の種類のネットワークすべてに対して、windbg がポートにアクセスできるようにします。

windows セキュリティの警告-windows ファイアウォールがこのアプリの一部の機能をブロックしました。

この時点で、デバッガーはターゲットが再接続するのを待機し、次のようなテキストがデバッガーのコマンドウィンドウに表示されます。

Microsoft (R) Windows Debugger Version 1.0.1908.30002 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.

Using NET for debugging
Opened WinSock 2.0
Waiting to reconnect...

ターゲット PC を再起動する

デバッガーが "再接続を待機しています..." になったら、ステージングし、ターゲットコンピューターを再起動します。 PC を再起動する1つの方法は、管理者のコマンドプロンプトからこのコマンドを使用することです。

shutdown -r -t 0 

対象の PC が再起動すると、デバッガーは自動的に接続されます。

トラブルシューティングのヒント

デバッグアプリケーションはファイアウォール経由で許可されている必要があります

デバッガーは、ファイアウォール経由のアクセス権を持っている必要があります。 コントロールパネルを使用して、ファイアウォール経由のアクセスを許可します。

  1. コントロールパネルの [ システムとセキュリティ] を開き、[ Windows ファイアウォールを介してアプリを許可する] を選択します。

  2. アプリケーションの一覧でWindows GUI シンボリックデバッガーWindows カーネルデバッガー] を見つけます。

  3. チェックボックスを使用して、これら2つのアプリケーションがファイアウォールを介して、3種類のネットワークの種類を すべて 許可するようにします。

  4. 下にスクロールし、[ OK] を選択して、ファイアウォールの変更を保存します。 デバッガーを再起動してください。

    windows コントロールパネルのファイアウォール構成 Windows GUI シンボリックデバッガーを表示し、3種類のネットワークがすべて有効になっているカーネルデバッガーを Windows します。

Ping を使用して接続をテストする

デバッガーがタイムアウトになり、接続できない場合は、ターゲット PC で ping コマンドを使用して接続を確認します。

   C:\>Ping <HostComputerIPAddress>

ネットワークデバッグ用のポートの選択

デバッガーがタイムアウトになり、接続できない場合は、既定のポート番号5万が既に使用されているか、ブロックされている可能性があります。

49152 ~ 65535 の任意のポート番号を選択できます。 推奨される範囲は 5万 ~ 50039 です。 選択したポートは、ホストコンピューターで実行されているデバッガーによる排他アクセスのために開かれます。

メモ ネットワークデバッグに使用できるポート番号の範囲は、会社のネットワークポリシーによって制限される場合があります。 会社のポリシーによってネットワークデバッグに使用できるポートの範囲が制限されているかどうかを確認するには、ネットワーク管理者に確認してください。

サポートされているネットワークアダプター

kdnet.exe の実行時に "ネットワークデバッグがこのコンピューターのどの Nic でもサポートされていません" と表示される場合は、ネットワークアダプターがサポートされていないことを意味します。

ホストコンピューターは任意のネットワークアダプターを使用できますが、ターゲットコンピューターでは、Windows 用のデバッグツールでサポートされているネットワークアダプターを使用する必要があります。 サポートされているネットワークアダプターの一覧については、「 Windows 10 でのネットワークカーネルデバッグのサポートされているイーサネット nic 」およびWindows 8.1 のネットワークカーネルデバッグ用のサポートされているイーサネット nic

追加のデバッグの種類を有効にする

Windows 10 2020 年10月の更新プログラム (20h2) では、次のオプションがサポートされており、4種類のデバッグを有効にすることができます。

b -bootmgr のデバッグを有効にします。 詳細については、「 BCDEdit/bootdebug」を参照してください。

w -winload.exe デバッグを有効にします。 詳細については、「 BCDEdit/bootdebug」を参照してください。

h -ハイパーバイザーデバッグを有効にします。 詳細については、「 BCDEdit の設定」を参照してください。

k -カーネルデバッグを有効にします。 詳細については 、「WinDbg を使用したはじめに (カーネルモード)」を参照してください。

デバッグの種類の任意の組み合わせを指定できます。

デバッグの種類が指定されていない場合は、カーネルデバッグが有効になります。

ハイパーバイザーとカーネルデバッグの両方が有効になっている場合、ハイパーバイザーポートは、値ポート + 1 に設定されます。

使用例

-Bkw オプションを使用して、bootmgr、カーネル、winload.exe デバッグを有効にします。

C:\>kdnet.exe <HostComputerIPAddress> <YourDebugPort> -bkw

Enabling network debugging on Intel(R) 82577LM Gigabit Network Connection.
Key=2steg4fzbj2sz.23418vzkd4ko3.1g34ou07z4pev.1sp3yo9yz874p

デバッグの種類のオプションの概要

KNDET オプション 説明 同等のセットコマンド
b bootmgr のデバッグを有効にします bcdedit/bootdebug {bootmgr} on
h ハイパーバイザーのデバッグを有効にする bcdedit /set hypervisordebug on
k カーネル デバッグを有効にする bcdedit /debug on
w winload デバッグを有効にする bcdedit /bootdebug on

バス パラメーターを指定する

kdnet がトランスポートのバス パラメーターを自動的に決定できない場合は、コマンド ラインで/busparams オプションを指定します。この構文を使用します。

kdnet.exe /busparams [b.d.f] [host] [port] [-[b][h][k][w]]

[b.d.f] は、構成するデバイスのバス パラメーターを指定します。

ターゲット デバイス マネージャーを使用して、デバッグに使用するアダプターの PCI バス、デバイス、および関数番号を決定します。 バス パラメーターには、「b」と入力しますdここで、b、d、fアダプターのバス番号、デバイス番号、および関数番号です。 これらの値は、 [全般] タブの [場所] のデバイス マネージャーに表示されます。

次に例を示します。

C:\>kdnet.exe /busparams 0.29.7 <HostComputerIPAddress> <YourDebugPort> -bkw

Windows 10 でネットワーク カーネル デバッグ用にサポートされているイーサネット NIC

Windows 8.1 でネットワーク カーネル デバッグ用にサポートされているイーサネット NIC

KDNET ネットワーク カーネル デバッグの手動設定

WinDbg ドライバーの概要 (カーネル モード)

ユニバーサル ドライバーのデバッグ - ステップ バイ ステップ ラボ (Echo カーネル モード)