ダンプ解析の簡易手法 |
Windows 10 などのメモリダンプを簡単に解析する手法を記載する。
WinDbg | (1) WinDbg ショートカットを右クリックで「管理者として実行」で起動する。 (2) WinDbg でメモリダンプのファイルを開く。 (3) WinDbg のコマンドの部分に「自動解析コマンド群」をコピーし貼り付ける。 最後にエンターを打鍵。 ←←入力1:「メモリダンプ」 ← 「STOPエラー」 ←←入力2:「自動解析コマンド群」 |
↓ | 10〜20分程度の自動解析。コーヒータイムです。 |
自動解析の結果 | (4) WinDbg の解析結果を全てテキストファイルにコピーする。 同じ内容が「C:\WinDbg解析結果_001.txt」 ファイルにも保管がされている。 (5) より正確に判定するために、他のメモリダンプや、正常時点のメモリダンプ でも、同じように自動解析させる →→出力1:「C:\WinDbg解析結果_001.txt」 (自動解析結果) |
↓ | ↓ |
STOPの原因判定 | ↓ (6) 参考資料として 「解析結果」 の資料で比較判定する。 自動解析結果より原因を判定する。 (7) 原因1: 「解析コマンド群」の先頭にある「 !analyze -v 」コマンドで 「stop エラー」となった部分の解析をしてくれます。 問題発生のドライバ、又は、問題発生の関数を示してくれます。 ここが原因となっている確率は50%です。 (8) 原因2: その他のコマンドで確認できる事象が原因の確率は50%です。 |
|
【原因2】の対応手法
「解析コマンド群」の読み解き方は 「解析結果」 のテキスト資料を参考にして下さい。
「その他の部分」に原因がある可能性については、結果の「テキスト ファイル」から Disk動作不良の可能性。 I/Oの動作不良の可能性。 USB機器が抜き差し状態。(静電気、コネクタ接触不良など) 無線LANの生死状態。(外部電磁波) メモリ枯渇。 メモリのビット化け。 Diskにまだ書込していない直前のエラーログを確認。 数えあげるときりがないほどの「その他の部分」での原因があます。
|
皆さんはここで気が付いたと思いますが、「解析コマンド群」はいくらでも変更ができます。 自分の扱っている機器に合わせて、「解析コマンド群」に追加と削除ができます。
ここではカーネルダンプの自動解析ですが、ユーザダンプ解析でも「解析コマンド群」 自分に合ったコマンド群をテキストファイルに並べておくと、自動解析として使えます。
【参考資料】 ・「自動解析コマンド群」 ---- カーネルダンプの自動解析コマンド群です。 ・「解析結果」 ------------ 上記解析にコメントを追加。 ステップ2の詳細原因調査も追記。 ・「その他コマンド群」 ------ ユーザダンプの自動解析コマンド群、など。 ・「よく使う重要コマンド」 ---- 手動でよく使うコマンドです。
|
■ 解析のための前準備
WinDbg によるメモリダンプ解析 を参考。
|
また、次のステップ2として、「STOP エラー」となった部分の原因調査としてプログラム
解析をしたくなるはずです。その時は、WinDbg のデバッグ機能を使い、正常系と比較
すると、第三者の開発したプログラムであっても機械語レベルでの原因調査が可能と
なります。
「STOP エラー」と同じ状態をどのようにしたら作れるのかを考えながら調査をする
手法となります。
何度もダンプ解析をしていると、他のデータと比較検討ができるようになります。
情報の蓄積から見えてくるものが変わってきます。
ダンプ解析は外部に委託するのではなく、内部で行うことで技術を蓄積することが
でき、重大な問題でも判断できる情報量が多くなります。企業活動でのスピードアップ
とコストにも直結します。
Windows NT3.51 の時代から始めた解析ですが、完全な自己流では
ありますが、
Windows 10 の時代でも、ここにある大量の情報を確認してから始めるのが、
最短時間で解析ができ、判断ミスが少なくなる手法だと思います。
Windos 7 / 8 / 10 / Server でも、世代が 32Bit から 64Bit に変わっても、この
「自動解析コマンド群」 は同じです。WinDbgの解析ツールも同じです。
版数 : 2018年12月28日版
作成 : 佐藤 修二
e-Mail: t i m
s t j p @ y a h o o . c o . j p