小さい頃はエラ呼吸

いつのまにやら肺で呼吸をしています。


WinDbgを使ってクラッシュダンプファイルを解析する

はじめに

前回の記事では、WERの仕組みを使ってアプリケーションがクラッシュした場合に、自動的にクラッシュダンプを吐くようにしました。
この記事では、出力されたクラッシュダンプをWinDbgを使って解析したいと思います。

 ツールを使いこなして、バグハント!
Mario Hewardt Daniel Pravat
アスキー・メディアワークス
売り上げランキング: 517,151

WinDbgの入手

WinDbgは、以下のページからダウンロードすることができます。


インストールウィザードに従い、WinDbgのインストールを行います。



WinDbgの起動

スタートメニューから「Windows Kits」→「Debugging Tools for Windows(X86)を展開し、WinDbg(X86)を選択します。

シンボルファイルパスの設定

WinDbgを起動したら、シンボルファイルパスを設定します。
1.FileメニューからSymbol File Path(Ctrl + S)を選択します。

2.以下のパスを指定し、OKボタンをクリックします。

SRV*c:\symbols*http://msdl.microsoft.com/download/symbols


これで、ダンプファイルの解析時に、c:\symbolsフォルダが自動的に作成され、マイクロソフトのサイトからシンボルファイルがダウンロードされるようになります。

さらに、クラッシュしたアプリケーションのシンボルファイル(.pdb)がある場合は、そのファイルパスも指定すると解析の助けとなります。複数のシンボルファイルパスを指定する場合は、セミコロンで連結します。

ダンプファイルを解析する

シンボルファイルの設定が完了したら、ダンプファイルをドラッグ&ドロップで読み込ませます。

いよいよ、ダンプファイルの解析を行います。画面下部のコマンド欄に以下のコマンドを入力すると、解析がはじまります。

!analyze -v


解析が完了すると、以下のようなコールスタックが出力されます。クラッシュの原因となった関数名が分かるかもしれません。