パソコンを スリープで放置していたら、突然死のブルーバック画面になって、Windows10から新しくなったQRコードを表示した。
そのまま数秒で、シャットダウンされたので、イベントビューアで見てみると、次のようにログが作成されていた。
下スクロールする。
BugCheckとかいう新しい如何にもそれらしい不具合のログのようだ。
(--- 以下は結局、BugCheckもQRコードも解説していなくて、デバッグシンボルも中途半端でうまく取得できていない。なので記事の内容としてはWindows10 1803時点での、Windowsのコアダンプの表示のしかたぐらいなので、戻る人はブラウザバックで。)
どうやらC:\Windows\MEMOY.DMPにダンプファイルが出力されているようなので、そのままではディレクトリのシステムのアクセス権を今ログインしている一般ユーザに許可しなければならないので、ドキュメントディレクトリ(C:\Users\<ユーザ名>Documents)にコピー。せいぜい400MB 程度なので。
そしてこれを解析するのに、こちらのサイト様を参考にした。
(独り言:2018/9/13現在、エキサイトブログ運営さんへ。通常編集でChrome上のWebコンテンツとしてのテキストを、コピーしてプレーンテキストとして貼り付けが出来なくなっている。メモ帳に貼り付けてからコピー&ペーストしてもダメ。どうやら末尾の、カーソル以降に文字が無い場所に追加するとだめらしい。なので貼り付け位置以降に適当な文字を入力後メモ帳からの文字列を貼り付け。P.S.さらに途中行にしてやっても文字列を削除するとタグが残っているようで、それでも貼り付けできなくなってしまう。なので改行を打ち込んでそれを範囲指定して削除するか、HTML編集に降りて修飾タグを消してやる必要がある。
【元原因】はSPANタグを必ずつけるようになったためで、それもプレーンテキストであっても。このSPANタグが通常編集では削除で残ってしまうため、それ以降の文字列がおかしな修飾をうけてしまう。つけるのはいいが削除が中途半端な実装なのはどうにかして欲しい)
ここまで。
大体は、WinDbgを起動すればいいらしい。それをダウンロードするのだが、このサイト様のページ末尾の【参考情報】という項目に、元となったサイト様へのリンクがあるので、そちらも参照する。
それも読むと、
Win SDK全体でなく、Debugging Tools for Windows だけを単独でインストールするために、リンクが貼ってある。
Microsoftのページに飛んで、Microsoft DocsのWindows Driver Kit (WDK)の ダウンロードのページになる。
そこから、末尾辺りに、Debugging Tools for Windows(WinDbg)のリンクがあるのでさらにクリック。
そのページの、
Debugging Tools for Windows 10 (WinDbg)という項目へのリンクがあるので、項目へ移動すると
Get Debugging Tools for Windows (WinDbg) (from the SDK)
というダウンロードリンクがあるのでクリックすると以下のサイトに飛ぶ。
ここのGet Started の、「3.Review the Known Issues in this topic.」 の下にある、
DOWNLOAD THE INSTALLER
をクリックすると、やっと winsdksetup.exe(SEの雑記様の記事ではsetup.exe)がダウンロードされる。
これはWinSDKのインストーラなのだが、exeが関連インストーラを解凍・展開するので、展開ディレクトリ内からWinDbgのインストーラを選ぶ。
まず、インストール手順は、SEの雑記様の記事の通りで、実行画面で2番目のDownloadだけのを選び、次ではYesのままにし、3番目の画面では項目数が今とは違って少ないが、Debugging Tools for Windows のみをチェックONにして、Downloadボタンを押す。ダウンロード容量がGB単位からMB単位に変わるのですぐわかる。最後にDownload Completeと表示され、展開ディレクトリが示される。
(ちなみにwinsdksetup.exe を C:\Users\<ユーザ名>\Downloadsにダウンロードして実行したら、展開ディレクトリはC:\Users\<ユーザ名>\Downloads\Windows Kits\10\WindowsSDK\Installersとなる。winsdksetup.exeの実行後、直下に「Windows Kits」というディレクトリが作られ、そこの中の奥にwinsdksetup.exe自身もコピーされ、奥のと並列にInstallersディレクトリが出来る)
展開したディレクトリのInstallersディレクトリの中にWinDbgのインストーラがある。
SEの雑記様の記事とは名前が違うが、SDK Debuggers-x86_en-us.msi が WinDbgのインストーラ。
これを実行すると、インストールされて記事通りにWinDbg (X86)がスタートメニューに追加されているのが確認できる。
===================
それではWinDbgを実行してみよう。
実行すると、SEの雑記様の記事と同じように画面が出るので、「■シンボルファイルのパス設定」を行う。
[File]-[Symbol File Path …」を選び、ダイアログでパスを入れるのだが、この項目の直下にあったリンク、
をクリックしてシンボルを探す。
このページはGoogle翻訳するとわかりやすい。
翻訳したページの「Microsoft Symbol Serverの使用」か、原文の「Using the Microsoft Symbol Server」の位置まで移動し、
原文:「The syntax for the _NT_SYMBOL_PATH variable is:」
翻訳:「_NT_SYMBOL_PATH変数の構文は次のとおりです。」
のシンボルのパスをコピーできるエリア表示があるのでそれをコピーする。
すると、今現在は、以下のようにコピーされる。
srv*[local cache]*[private symbol server]*https://msdl.microsoft.com/download/symbols
これを記事の通りダイアログ画面でペーストし、以下のように変更する。
srv*C:Symbols*https://msdl.microsoft.com/download/symbols
これは記事に沿ってC:\Symbols(記事では文字列が間違っているし、なぜかパス区切りが入っていないがそのまま入れない)をディレクトリ作成しておく。
そして、[File]-[Open Crush Dump ... ]を選んで、MEMORY.DMPをコピーしたドキュメントディレクトリ(C:\Users\<ユーザ名>Documents)を指定する。
すると次のように画面が表示されると成功。
うまくいっただろうか。自分のユーザ名が表示されているが、とりあえずまあ大丈夫か。
最初のサイト様の【参考情報】にあったサイトで解析を行うとよい。
色々とMicrosoft のページはGoogle翻訳して読むと、情報を発見しやすい。
末尾に「Probably caused by : ntoskrnl.wrong.symbols.exe ( nt_wrong_symbols!5B63C7B5954000 )」
と表示されているので、ntoskrnl.exe(C:\Windows\System32)がクラッシュしているのがわかる。
!analyze -v をクリックすると、すぐ下の0: kd>というテキストエリアにコマンドキー入力したのと同じなので、
しばらくして同画面に解析結果が表示されればOK。
ただ、どうもhttps:になったせいか、次のようにMicrosoft Symbol Server のシンボルにうまくアクセスできていないようだ。(C:SymbolsのSの前に\を入れても同じ)
「DBGHELP: c:symbols*https://msdl.microsoft.com/download/symbols is not a valid store」
どこかからローカルにシンボルをダウンロードしてくる必要があるみたいだ。
しかし、手掛りが少しでも増えたのはうれしい。下の方に、
「FAULTING_MODULE: fffff802c4000000 nt」
とあるので確かにntkernel辺りで落ちているようだ。
解析記事のように「この場合は、myfault.sys が原因です。」とシンボルがわかればよかったのだが。
BugCheckもQRコードも期待して見に来た方はすまない。
内容が薄く、せいぜいコアダンプの表示のさせ方の一部でそれも中途半端に終わっている。
続きがあればまた記事にしたい。
P.S.
http:にしたら出来た。
最初の記事にあるように、
SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
としたら、次のように。
2枚目:アドレス参照64ビット汎用レジスタrsi=0x00、ディスティネィションDSが0x2Dで、+0x30追加で0x002D:00000000+00000030にmov命令でアクセスしたら落ちた。
3枚目:e36wgps64.sysの中で落ちた。
元々、
============================
Use !analyze -v to get detailed debugging information.
BugCheck 7E, {ffffffffc0000005, fffff801c55bcfa9, ffffbd05451f0558, ffffbd05451efda0}
*** ERROR: Module load completed but symbols could not be loaded for e36wgps64.sys
*** ERROR: Module load completed but symbols could not be loaded for Mbm4bus.sys
Probably caused by : e36wgps64.sys ( e36wgps64+cfa9 )
Followup: MachineOwner
---------
0: kd> !analyze -v
============================
と出ていたので、「e36wgps64.sys」と「Mbm4bus.sys」がシンボルが提供されていないのはわかっていたが、そのe36wgps64.sysだったとは。
そして Google検索するが、エリクソンの2008年のGPS関係らしい。電源ON/OFFでエラーがあった場合の理由が、怪しいDLLダウンロードサイトに壊れていないかどうかとある。
壊れているならダウンロードしたいが2008年のリンクなのですでにNot Found.
んー、どうなんだろうなー。それ以外のセキュリティホールなどはないのかな。
"C:\Windows\System32\drivers\e36wgps64.sys"は2010年版なので壊れてはいないと思うがなんとも。