強制的にWindowsのメモリダンプを取る方法
自分の作ったソフトが、どうもおかしなところでフリーズしたり、挙動がおかしくなったときは、強制的にメモリダンプを吐かせる方法があるようなので、ご紹介したいと思います。
PS/2キーボードの場合
まず以下のレジストリを「regedit」を使って追加します。
- レジストリ: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
- 値の名前: CrashOnCtrlScroll
- データ型: REG_DWORD
- 値のデータ: 1
そうしたら、PCを再起動し、レジストリを反映させます。
次にメモリダンプを取りたいタイミングで、キーボード右のCtrlキーを押しながら、ScrollLockを2回押します。
これで、任意のタイミングでメモリダンプが取れるようです。
USBキーボードの場合
USBキーボードの場合は、PS/2のものと使われるドライバが異なるため、修正プログラムをダウンロードする必要があるようです。
以下のサイトの上部に、「修正プログラムのダウンロード」があるので、そちらから入手してください。
これを入手したら、後はPS/2の場合と似ています。
まず以下のレジストリを「regedit」を使って追加します。「kbdhid」の箇所がPS/2と異なるので、要注意です。
- レジストリ: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters
- 値の名前: CrashOnCtrlScroll
- データ型: REG_DWORD
- 値のデータ: 1
そうしたら、PCを再起動し、レジストリを反映させます。
次にメモリダンプを取りたいタイミングで、キーボード右のCtrlキーを押しながら、ScrollLockを2回押しますと、任意のタイミングでメモリダンプが取れるようです。