Windows 用デバッグ ツールでは、 ローカル カーネル デバッグがサポートされています。 これは、1 台のコンピューター上でのカーネルモード デバッグです。 つまり、デバッガーは、デバッグ中の同じコンピューター上で実行されます。
ローカル カーネルモード デバッグの設定
ローカル カーネル モード デバッグのセットアップの詳細については、「 単一コンピュータのローカル カーネル モード デバッグの手動セットアップ」を参照してください。
デバッグ セッションの開始
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 サイトからダウンロードできます。