WinDbg (クラシック) を使用したライブ カーネル モード デバッグ
WinDbg を使用して、カーネル モードのライブ デバッグ セッションを開始する方法は 2 つあります。
WinDbg メニュー
WinDbg が休止モードの場合は、 ファイル メニューから カーネル デバッグ ] を選択するか、Ctrl キーを押しながら K キーを押して、カーネル デバッグ セッションを開始できます。 [ カーネル デバッグ ] ダイアログ ボックスが表示されたら、適切なタブ ( NET、 COM、 USB、または Local をクリックします。 各タブは、異なる接続方法を指定します。
コマンド プロンプト
コマンド プロンプト ウィンドウでは、WinDbg を起動するときにカーネル モード デバッグ セッションを開始できます。 次のコマンドのいずれかを入力します。
windbg [-y SymbolPath] -k net:port=PortNumber,key=Key[,target=TargetIPAddress|TargetMachineName]
windbg [-y SymbolPath] -k usb:targetname=USBString
windbg [-y SymbolPath] -k com:port=ComPort,baud=BaudRate
windbg [-y SymbolPath] -k com:ipport=SerialTcpIpPort,port=SerialIPAddress
windbg [-y SymbolPath] -k com:pipe,port=\\VMHost\pipe\PipeName[,resets=0][,reconnect]
windbg [-y SymbolPath] -k com:modem
windbg [-y SymbolPath] -kl
windbg [-y SymbolPath] -k
詳細については、 「WinDbg コマンドライン・オプション」を参照してください。
環境変数
シリアル (COM ポート) 経由でデバッグする場合は、環境変数を使用して接続設定を指定できます。
シリアル接続を指定するには、次の変数を使用します。
_NT_DEBUG_PORT = ComPort
_NT_DEBUG_BAUD_RATE =BaudRate
詳細については、「 カーネルモード環境変数」を参照してください。
パラメーター
SymbolPath
シンボル ファイルが配置されているディレクトリの一覧。 リスト内のディレクトリはセミコロンで区切られます。 詳細については、「 シンボルパス」を参照してください。
PortNumber
ネットワーク デバッグに使用するポート番号。 49152 から 65535 までの任意の数値を選択できます。 詳細については、「 ネットワーク接続を手動で設定する」を参照してください。
Key
ネットワーク デバッグに使用する暗号化キー。 ターゲット コンピューターを構成するときに bcdedit によって提供される、自動生成されたキーを使用することをお勧めします。 詳細については、「 ネットワーク接続を手動で設定する」を参照してください。
TargetIPAddress
ターゲット マシンのIPv4アドレス。
target= IP アドレスを指定すると、デバッガーは、指定されたターゲット マシンへの接続を開始します。これにより、特殊なパケットがターゲットに送信され、そのデバッガーとの接続が試行されます。 デバッガーは、約 5 分の 1 秒ごとにパケットをターゲットに繰り返し送信し、接続を試みます。 接続が成功すると、ターゲットは既存の接続を削除し、デバッガーのこのインスタンスとのみ通信します。 これにより、デバッグ セッションを既存のデバッグ接続から制御できます。
ターゲットがホスト IP アドレスで構成されていて、構成済みのホスト IP アドレスを持つマシンでデバッガーが実行されている場合、target= IP address パラメーターを指定する必要はありません。 ターゲットがホスト IP アドレスで構成されている場合、OFFER パケットは 3 秒ごとにホストに送信されます。 OFFER パケットを使用すると、target= IP アドレスが指定されていない場合、デバッガーはホストに接続できます。
ターゲットでホスト IP アドレスを構成する方法の詳細については、「 KDNET ネットワーク カーネルの自動 デバッグの設定 」および 「 KDNET ネットワーク カーネル デバッグを手動で設定する」を参照してください。
TargetMachineName
ターゲット PC のマシン名。 マシン名を使用するには、ネットワーク上の DNS システムに、ターゲット PC の IP アドレスに関連付けられているマシン名が必要です。
USBString
USB 接続文字列。 これは、/targetname ブート オプションで指定された文字列と一致する必要があります。 詳細については、「 USB 3.0 xHCI-DBC カーネル モード デバッグ (KDUSB) を設定する」を参照してください。
ComPort
COMポートの名前。 これは "com2" または "\\.\com2" の形式で指定できますが、単に数値にすることはできません。 詳細については、「 シリアル接続を手動でセットアップする」を参照してください。
BaudRate
ボー レート。 これは、9600、19200、38400、57600、または115200です。
SerialTcpIpPort
エミュレートされたシリアル COM ポートのターゲット TCP IP ポート。
SerialIPAddress
エミュレートされたシリアル COM ポートのターゲット TCP IP アドレス。
VMHost
仮想マシンをデバッグする場合、 VMHost は仮想マシンが実行されている物理コンピューターの名前を指定します。 仮想マシンがカーネル デバッガー自体と同じコンピューターで実行されている場合は、 VMHost に 1 つの期間 (.) を使用します。 詳細については、「 仮想マシン への接続の設定」を参照してください。
PipeName
デバッグ接続用に仮想マシンによって作成されたパイプの名前。
resets=0
ホストとターゲットの同期時に、リセット パケットをターゲットに何個でも無制限に送信できることを指定します。 このパラメーターは、特定の種類の仮想マシンをデバッグする場合にのみ必要です。
reconnect
読み取り/書き込みエラーが発生した場合に、デバッガーがパイプとの接続を自動的に切断し再接続します。 また、デバッガーの起動時に名前付きパイプが見つからない場合は、再接続パラメーターによって、この名前のパイプが表示されるまで待機します。 このパラメーターは、特定の種類の仮想マシンをデバッグする場合にのみ必要です。
-kl
デバッガーでローカル カーネル モード デバッグを実行します。 詳細については、「 ローカル カーネル モードのデバッグ」を参照してください 。
以前のバージョンのパラメーター
重要
1394 トランスポートは、Windows 10 バージョン 1607 およびそれ以前で使用できます。 それより後のバージョンの Windows では使用できません。 イーサネットを使用して KDNET などの他のトランスポートにプロジェクトを移行する必要があります。 そのトランスポートの詳細については、「KDNET ネットワーク カーネル デバッグの自動設定」を参照してください。
1394Channel
1394 チャンネル番号。 有効なチャネル番号は、0 ~ 62 の任意の整数です。 1394Channel は 、ターゲット コンピューターで使用される数と一致する必要がありますが、アダプターで選択された物理 1394 ポートには依存しません。
1394Protocol
1394 カーネル接続に使用される接続プロトコル。 ほとんどの場合、デバッガーが正しいプロトコルを自動的に選択するため、これは省略できます。 これを手動で設定し、ターゲット コンピューターが Windows XP を実行している場合は、 1394Protocol を "channel" に設定する必要があります。 ターゲット コンピューターで Windows Server 2003 以降が実行されている場合は、 1394Protocol を "instance" に設定する必要があります。 省略すると、デバッガーは既定で現在のターゲット コンピューターに適したプロトコルになります。 これは、WinDbg グラフィカル インターフェイスではなく、コマンド ラインまたは環境変数でのみ指定できます。
例
次のバッチ ファイルを使用して、COM ポート接続を介してデバッグ セッションを設定および開始できます。
set _NT_SYMBOL_PATH=d:\mysymbols
set _NT_DEBUG_PORT=com1
set _NT_DEBUG_BAUD_RATE=115200
set _NT_DEBUG_LOG_FILE_OPEN=d:\debuggers\logfile1.log
windbg -k
次のコマンド ラインを使用すると、環境変数なしで WinDbg を起動できます。
windbg -y d:\mysymbols -k com:port=com2,baud=57600
windbg -y d:\mysymbols -k com:port=\\.\com2,baud=115200
windbg -y d:\mysymbols -k net:port=50000,key=AutoGeneratedKey
windbg -y d:\mysymbols -k net:port=50000,key=AutoGeneratedKey,target=TargetIPAddress