ローカル カーネルモード デバッグLocal Kernel-Mode Debugging

Windows 用デバッグツールでは、 ローカルカーネルデバッグ がサポートされています。Debugging Tools for Windows supports local kernel debugging. これは、1台のコンピューターでのカーネルモードのデバッグです。This is kernel-mode debugging on a single computer. つまり、デバッガーは、デバッグされているのと同じコンピューター上で実行されます。In other words, the debugger runs on the same computer that is being debugged.

ローカル Kernel-Mode デバッグの設定Setting Up Local Kernel-Mode Debugging

ローカルカーネルモードデバッグの設定の詳細については、「 1 台のコンピューターのローカル Kernel-Mode デバッグを手動で設定する」を参照してください。For information on setting up local kernel-mode debugging, see Setting Up Local Kernel-Mode Debugging of a Single Computer Manually.

デバッグセッションを開始していますStarting the Debugging Session

WinDbg の使用Using WinDbg

管理者として WinDbg を開きます。Open WinDbg as Administrator. [ ファイル ] メニューの [ カーネルデバッグ] をクリックします。On the File menu, choose Kernel Debug. [カーネルデバッグ] ダイアログボックスで、[ ローカル ] タブを開きます。 [ OK] を選択します。In the Kernel Debugging dialog box, open the Local tab. Select OK.

また、管理者としてコマンドプロンプトウィンドウを開き、次のコマンドを入力して、WinDbg を使用してセッションを開始することもできます。You can also start a session with WinDbg by opening a Command Prompt window as Administrator and entering the following command:

windbg-kl ダイバージェンスwindbg -kl

KD の使用Using KD

管理者としてコマンドプロンプトウィンドウを開き、次のコマンドを入力します。Open a Command Prompt window as Administrator, and enter the following command:

kd-kl ダイバージェンスkd -kl

使用できないコマンドCommands That Are Not Available

すべてのコマンドがローカルカーネルデバッグセッションで使用できるわけではありません。Not all commands are available in a local kernel debugging session. 通常、操作を再開することはできないため、ターゲットコンピューターを一時的に停止するコマンドを使用することはできません。Typically, you cannot use any command that causes the target computer to stop, even momentarily, because you cannot resume operation.

特に、次のコマンドは使用できません。In particular, you cannot use the following commands:

  • 実行コマンド ( g (開始)p (Step)t (Trace)wt (trace And Watch Data)tb (trace To Next Branch)gh (例外を処理した状態 で実行)、および gn (例外を処理しないで ください)Execution commands, such as g (Go), p (Step), t (Trace), wt (Trace and Watch Data), tb (Trace to Next Branch), gh (Go with Exception Handled), and gn (Go with Exception Not Handled)

  • クラッシュダンプ. reboot などのファイルコマンドをシャットダウンおよびダンプするShutdown and dump file commands, such as .crash, .dump, and .reboot

  • ブレークポイントコマンド ( bpbubabcbdbe、および bl )Breakpoint commands, such as bp, bu, ba, bc, bd, be, and bl

  • R やバリエーションなどの表示コマンドを登録するRegister display commands, such as r and variations

  • K やバリエーションなどのスタックトレースコマンドStack trace commands, such as k and variations

WinDbg でローカルカーネルデバッグを実行している場合は、同等のすべてのメニューコマンドとボタンも使用できません。If you are performing local kernel debugging with WinDbg, all of the equivalent menu commands and buttons are also unavailable.

使用可能なコマンドCommands That Are Available

すべてのメモリ入力および出力コマンドを使用できます。All memory input and output commands are available. ユーザーメモリとカーネルメモリから自由に読み取ることができます。You can freely read from user memory and kernel memory. メモリに書き込むこともできます。You can also write to memory. カーネルメモリの不適切な部分には書き込まないでください。データ構造が破損したり、コンピューターが応答しなくなったり ( クラッシュ) したりする可能性があります。Make sure that you do not write to the wrong part of kernel memory, because it can corrupt data structures and frequently causes the computer to stop responding (that is, crash).

ローカルカーネルデバッグの実行に関する問題Difficulties in Performing Local Kernel Debugging

ローカルカーネルデバッグは非常に微妙な操作です。Local kernel debugging is a very delicate operation. システムを破損したりクラッシュしたりしないように注意してください。Be careful that you do not corrupt or crash the system.

ローカルカーネルデバッグの最も困難な側面の1つは、コンピューターの状態が絶えず変化することです。One of the most difficult aspects of local kernel debugging is that the machine state is constantly changing. メモリはページングされ、アクティブなプロセスは常に変化し、仮想アドレスコンテキストは一定のままではなくなります。Memory is paged in and out, the active process constantly changes, and virtual address contexts do not remain constant. ただし、これらの条件下では、特定のデバイスの状態など、変化が遅くなる項目を効果的に分析できます。However, under these conditions, you can effectively analyze things that change slowly, such as certain device states.

カーネルモードドライバーと Windows オペレーティングシステムでは、多くの場合、 Dbgprint および関連する機能を使用して、カーネルデバッガーにメッセージが送信されます。Kernel-mode drivers and the Windows operating system frequently send messages to the kernel debugger by using DbgPrint and related functions. これらのメッセージは、ローカルカーネルデバッグ中に自動的には表示されません。These messages are not automatically displayed during local kernel debugging. これは、 ! dbgprint 拡張機能を使用して表示できます。You can display them by using the !dbgprint extension.

LiveKDLiveKD

LiveKD ツールは、ローカルカーネルデバッグをシミュレートします。The LiveKD tool simulates local kernel debugging. このツールは、カーネルメモリの "スナップショット" ダンプファイルを作成します。このファイルは、このスナップショットの作成中に実際にカーネルを停止することはありません。This tool creates a "snapshot" dump file of the kernel memory, without actually stopping the kernel while this snapshot is made. このため、スナップショットには、実際にはコンピューターの1つのインスタント状態が表示されない場合があります。(Therefore, the snapshot might not actually show a single instant state of the computer.)

LiveKD は、Windows 用デバッグツールのパッケージには含まれていません。LiveKD is not part of the Debugging Tools for Windows package. LiveKdは、Windows Sysinternals サイトからダウンロードできます。You can download LiveKd from the Windows Sysinternals site.