[Windbg 第4回] カーネルメモリ空間のダンプを取得する。
こんにちわgattsです。
今回は問題を解決するための前段階として調査対象のダンプファイルの取得方法を書こうと思います。
メモリ空間ってなんなんだ?
Windowsにはメモリの考え方としてカーネル空間とユーザ空間の二通りがあるそうです。カーネル空間はWindows自身やデバイスドライバ、HWとのやり取りに欠かせないソフトが動いています。一方、ユーザ空間はカーネル空間で抽象化された世界で動くアプリケーションの世界です。実際にみなさんが使っているWordやExcelはこのユーザ空間で動いています。
今回は、カーネル空間のダンプファイル取得について書きます。
取得方法には2通り方法があります。
- 自分がダンプファイルをほしいと思った時に実施するキーボード操作による手動取得方式。
- OSでブルースクリーン状態(STOPエラー)発生時に自動的に取得する方式。
今回は、手動と自動の2通りをご紹介します。
手動取得方法
手動でダンプファイルを取得するにはレジストリーを変更する必要があります。
失敗するとちょっと怖いですね。
1.ファイル名を指定して実行を開きます。
2.Regeditと入力してOKボタンをクリックします。
3.レジストリエディタが開くので以下のディレクトリに移動します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
4.レジストリエディタのウインドウ中で右クリックのメニューから、新規→DWORD値を選択します。
5.新しい値 #1をCrashOnCtrlScrollへリネームします。
6.CrashOnCtrlScrollキーをダブルクリックします。
7.値のデータを1に設定します。
8.OKボタンを押し、レジストリエディタを終了します。
9.PCを再起動します。
10.PC再起動後Ctrlキー二回押した後にScrollキーを押すと任意にブルーバックが発生可能になります。
※利用するCtrlキーは右側のキーに限定されています。
これでキーボード操作をすることでいつでもブルースクリーンを発生することが可能になります。
メーカー製のサーバによってはダンプスイッチがついているのでそれを利用するのも便利ですね。
自動取得方法
1.マイ コンピュータを右クリックしてプロパティを開きます。
2.システムのプロパティで詳細設定タブを選択する。
3.起動と回復中にある設定ボタンをクリックします。
4.起動と回復のダイアログが出てきます。
私はここで以下のように設定しています。いつも利用しているサーバのメモリ
容量が4GB近くあるのでカーネル メモリ ダンプを使っています。
メモリ容量が2GB未満の場合は完全メモリダンプの取得も可能です。
5.OKボタンを押して設定を終了します。
この後OSのカーネル上でエラーが発生するとMEMORY.DMPファイルが
自動的に作成されるようになります。(c:\Windows\MEMORY.DMP)
みなさんはうまく設定出来ましたか?
ダンプファイルは出来ましたか?
つづく