Windowsを使っていると、突然ブルースクリーンになってしまうことがあります。
画面が青くなり、エラーメッセージが表示され、再起動を求められるのですが、時には再起動をしてもどうにもならず、何度もブルースクリーンが表示されることもあります。
こういうとき、エラーメッセージにある停止コードを調べたりして原因を調査することができます。以下のようなサイトが参考になります。
【Windows 11/10】停止コード(STOPコード)の一覧と対処法
しかし、それだけでは抽象的で、具体的な原因がわからないことがあります。そういうとき、具体的にどこが原因でクラッシュしてしまったのかを調査する手段として、クラッシュダンプを解析するという方法があります。
クラッシュダンプとは
簡単に言うと、Windowsがクラッシュしたときに作成されるログファイルです。クラッシュしたときの状況や、原因となったプロセスやドライバなどの情報が記録されています。
というわけで、このダンプファイルを解析していくこととします。
想定環境
- Windows 10-11
WinDbg
まずは解析ツールとしてWinDbgをインストールします。
Windows SDK - Windows アプリ開発 | Microsoft Developer
このサイトからWindows SDKのインストーラをダウンロードしてインストールします。
インストーラを起動すると、たくさんの機能が表示されますが、今回はデバッグツールが欲しいので、「Debugging Tools for Windows」だけチェックを入れればOKです。
インストーラを続行させると、インストールが完了します。
具体的な使い方
ここからは、実際にWinDbgを使っていきます。
クラッシュダンプを見るには管理者権限が必要なので、WinDbgを管理者権限で起動します。
X86とX64がありますが、PCが64bitなら後者を使ったほうが良いとされています。
また、以下のサイトにもありますが、今回はARMではなくX64を使うほうがよいでしょう。
WinDbgを起動し、左上のほうにある「File」から「Open Crash Dump」を選択します。
すると、クラッシュダンプファイルを選択するダイアログが表示されるので、クラッシュダンプファイルを選択します。名前は「MEMORY.DMP」などが一般的です。場所は「C:/Windows/」です。
選択すると、クラッシュダンプファイルが読み込まれ、解析が始まります。
Loading Dump File [C:\Windows\MEMORY.DMP]
(中略)
Loading User Symbols
Loading unloaded module list
......
For analysis of this file, run !analyze -v
読み込めたら、青色に表示されている! analyze -v
をクリックします。そうすると、詳細な解析が行われ、さらにさまざまな情報が表示されます。
4: kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
DPC_WATCHDOG_VIOLATION (133)
(中略)
SYMBOL_NAME: rtwlanu+395790
MODULE_NAME: rtwlanu
IMAGE_NAME: rtwlanu.sys
(後略)
このように、クラッシュダンプファイルの解析が行われ、どのようなエラーガ発生したのか、また原因となったモジュールの名前はなんなのか、ということなどが表示されます。
今回はrtwlanu.sysというモジュールが原因でクラッシュしていることがわかりました。これは外付けWi-Fi接続子機のドライバでした。該当する機器のドライバをアップデートしたことによって、クラッシュは解消されました。
まとめ
これで、クラッシュダンプの解析ができるようになりました。Windowsがクラッシュし、原因がわからない時はこうした手法を使ってみることが有効な解決策となりえます。
特に、原因となったモジュール名がわかると、それを検索にかけることで有効な情報を得ることができるかもしれないです。
Windowsがクラッシュしてしまったとき、こういった手法を使ってみることをおすすめします。