BSoDとの戦いに挑む
ここ最近ひどい
僕が普段使いしている Panasonic CF-B11 というノート PC なんだけど、ここ最近不定期に BSoD を出してくる。
どうにかしなきゃね、ということで、調べてみることに。
イベントログを読む
Windows という OS はぎりぎりまできっちりイベントログを収集していて、それは BSoD による強制再起動も例外ではない。ということは割と知られていることなので、とりあえず直近の2か月ほどを抜いてみる。
BSoD イベントは、 System イベントログ内に BugCheck というソース名で記録されるので、 Windows PowerShell でとりあえずヘッドラインだけでも出してみる。
PS > Get-EventLog -LogName System -After "2019/05/01" | Where-Object {$_.Source -eq "BugCheck"} Index Time EntryType Source InstanceID Message ----- ---- --------- ------ ---------- ------- 157766 6 20 06:47 Error BugCheck 1073742825 ソース 'BugCheck' のイベント ID '1073742825' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DL... 156383 6 17 21:48 Error BugCheck 1073742825 ソース 'BugCheck' のイベント ID '1073742825' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DL... 151168 6 08 16:26 Error BugCheck 1073742825 ソース 'BugCheck' のイベント ID '1073742825' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DL... 148570 6 08 15:11 Error BugCheck 1073742825 ソース 'BugCheck' のイベント ID '1073742825' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DL... 146691 6 05 20:38 Error BugCheck 1073742825 ソース 'BugCheck' のイベント ID '1073742825' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DL... 145460 6 03 22:35 Error BugCheck 1073742825 ソース 'BugCheck' のイベント ID '1073742825' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DL... 144162 6 02 20:54 Error BugCheck 1073742825 ソース 'BugCheck' のイベント ID '1073742825' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DL... 137197 6 01 22:18 Error BugCheck 1073742825 ソース 'BugCheck' のイベント ID '1073742825' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DL... 136141 6 01 07:49 Error BugCheck 1073742825 ソース 'BugCheck' のイベント ID '1073742825' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DL... 133441 5 26 19:51 Error BugCheck 1073742825 ソース 'BugCheck' のイベント ID '1073742825' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DL... 133303 5 26 13:27 Error BugCheck 1073742825 ソース 'BugCheck' のイベント ID '1073742825' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DL... 132988 5 25 21:32 Error BugCheck 1073742825 ソース 'BugCheck' のイベント ID '1073742825' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DL... 132631 5 25 19:19 Error BugCheck 1073742825 ソース 'BugCheck' のイベント ID '1073742825' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DL... 131648 5 24 23:02 Error BugCheck 1073742825 ソース 'BugCheck' のイベント ID '1073742825' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DL... 130682 5 22 22:24 Error BugCheck 1073742825 ソース 'BugCheck' のイベント ID '1073742825' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DL... 129735 5 20 21:04 Error BugCheck 1073742825 ソース 'BugCheck' のイベント ID '1073742825' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DL... 129301 5 19 15:18 Error BugCheck 1073742825 ソース 'BugCheck' のイベント ID '1073742825' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DL... 128834 5 19 11:44 Error BugCheck 1073742825 ソース 'BugCheck' のイベント ID '1073742825' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DL... 128416 5 18 22:42 Error BugCheck 1073742825 ソース 'BugCheck' のイベント ID '1073742825' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DL... 126350 5 13 22:47 Error BugCheck 1073742825 ソース 'BugCheck' のイベント ID '1073742825' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DL... 125399 5 12 10:24 Error BugCheck 1073742825 ソース 'BugCheck' のイベント ID '1073742825' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DL... 125194 5 11 23:39 Error BugCheck 1073742825 ソース 'BugCheck' のイベント ID '1073742825' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DL... 123956 5 08 13:52 Error BugCheck 1073742825 ソース 'BugCheck' のイベント ID '1073742825' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DL... 121016 5 02 23:33 Error BugCheck 1073742825 ソース 'BugCheck' のイベント ID '1073742825' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DL... 120450 5 02 15:58 Error BugCheck 1073742825 ソース 'BugCheck' のイベント ID '1073742825' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DL... 119397 5 01 19:09 Error BugCheck 1073742825 ソース 'BugCheck' のイベント ID '1073742825' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DL...
あー、このアウトプットではだめだ、ということで、 Format-List に通してみたところ、大半がこんな感じ。
Index : 120450 EntryType : Error InstanceId : 1073742825 Message : ソース 'BugCheck' のイベント ID '1073742825' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DLL ファイルがローカル コンピューターに存在しない可能性があります。または、これらのデータへのアクセス 許可がユーザーに与えられていない可能性があります。次の情報はイベントの一部です:'0x00000139 (0x0000000000000003, 0xfffff801f3072950, 0xfffff801f30728a8, 0x0000000000000000 )', 'C:\WINDOWS\MEMORY.DMP', 'b537a1cf-30ea-4911-be63-13624e70de94' Category : (0) CategoryNumber : 0 ReplacementStrings : {0x00000139 (0x0000000000000003, 0xfffff801f3072950, 0xfffff801f30728a8, 0x0000000000000000), C:\WINDOWS\MEMORY.DMP, b537a1cf-30ea- 4911-be63-13624e70de94} Source : BugCheck TimeGenerated : 2019/05/02 15:58:00 TimeWritten : 2019/05/02 15:58:00 UserName :
ReplacementStrings 行をみると、バグチェックコードが 0x139 だとわかった。先頭の16進数がそれだ。
MSDN の Bug Check Code Reference によれば、
カーネルが重要なデータ構造の破損を検知したんだそうな。[出展]
加えて、先頭から2番目の16進数は「破損のタイプ」だそう。前述の MSDN の記事では、
A LIST_ENTRY was corrupted (for example, a double remove). For more information, see the following Cause section.
LIST_ENTRY というのは、リスト構造のデータを扱う構造体のことのようだ。
むぅ、構造体そのものではなくて、そいつを操作している処理を特定しないといけないようだ。ここから先の追跡は、デバッガ使ってダンプを眺めてみるしかなさそうだけど、デバッガって Visual Studio のどのコンポーネントに入ってるんだろう?
次の ToDo
- デバッガのセットアップ
- ダンプの取得サイズを1段階上げる設定に変える
くらいかな....?
« MySQL素人がWindows版で3rd partyユーティリティからの接続を使えるようにした話 | トップページ | 続:BSoDとの戦いに挑む »
« MySQL素人がWindows版で3rd partyユーティリティからの接続を使えるようにした話 | トップページ | 続:BSoDとの戦いに挑む »
コメント