Debugging Tools for Windows では、 ローカル カーネル デバッグがサポートされています。 これは、1 台のコンピューターでのカーネル モード デバッグです。 つまり、デバッガーは、デバッグ中のコンピューターで実行されます。
ローカル Kernel-Mode デバッグの設定
ローカル カーネル モード デバッグの設定の詳細については、「 1 台のコンピューターのローカル Kernel-Mode デバッグを手動で設定する」を参照してください。
デバッグ セッションの開始
WinDbg の使用
管理者として WinDbg を開きます。 [ファイル] メニューの [カーネル デバッグ] を選択します。 [カーネル デバッグ] ダイアログ ボックスで、[ ローカル ] タブを開きます。 [OK] を選択します。
管理者としてコマンド プロンプト ウィンドウを開き、次のコマンドを入力して、WinDbg とのセッションを開始することもできます。
windbg -kl
KD の使用
管理者としてコマンド プロンプト ウィンドウを開き、次のコマンドを入力します。
kd -kl
使用できないコマンド
すべてのコマンドがローカル カーネル デバッグ セッションで使用できるわけではありません。 通常、操作を再開できないため、ターゲット コンピューターを一時的に停止させるコマンドは使用できません。
特に、次のコマンドを使用することはできません。
g (Go)、p (Step)、t (Trace)、wt (Trace and Watch Data)、tb (Trace to Next Branch)、gh (Go with Exception Handled)、gn (Go with Exception Not Handled) などの実行コマンド
.crash、.dump、.reboot などのシャットダウンおよびダンプ ファイル コマンド
ブレークポイント コマンド (bp、bu、ba、bc、bd、be、bl など)
r やバリエーションなどの表示コマンドを登録する
k やバリエーションなどのスタック トレース コマンド
WinDbg でローカル カーネル デバッグを実行している場合は、同等のメニュー コマンドとボタンもすべて使用できません。
使用可能なコマンド
すべてのメモリ入出力コマンドを使用できます。 ユーザー メモリとカーネル メモリから自由に読み取ることができます。 メモリに書き込むこともできます。 カーネル メモリの間違った部分に書き込まないようにしてください。データ構造が破損し、コンピューターが応答を停止する (つまり クラッシュする) ことが多いためです。
ローカル カーネル デバッグの実行に関する問題
ローカル カーネルのデバッグは非常に繊細な操作です。 システムが破損したりクラッシュしたりしないように注意してください。
ローカル カーネル デバッグの最も困難な側面の 1 つは、マシンの状態が絶えず変化していることです。 メモリはページイン/アウトされ、アクティブなプロセスは常に変更され、仮想アドレス コンテキストは一定のままではありません。 ただし、このような条件下では、特定のデバイスの状態など、ゆっくりと変化するものを効果的に分析できます。
カーネル モード ドライバーと Windows オペレーティング システムは、 DbgPrint と関連する関数を使用して、カーネル デバッガーにメッセージを頻繁に送信します。 これらのメッセージは、ローカル カーネルのデバッグ中に自動的に表示されません。 !dbgprint 拡張機能を使用して表示できます。
LiveKD
LiveKD ツールは、ローカル カーネルデバッグをシミュレートします。 このツールは、このスナップショットの作成中にカーネルを実際に停止することなく、カーネル メモリの "スナップショット" ダンプ ファイルを作成します。 (そのため、スナップショットにコンピューターの 1 つのインスタント状態が実際に表示されない場合があります)。
LiveKD は、Windows 用デバッグ ツール パッケージの一部ではありません。 LiveKd は、Windows Sysinternals サイトからダウンロードできます。