ダンプ作成環境(ユーザ側) Edit

環境の準備 Edit

レジストリ設定 Edit

アプリケーションエラーが発生した場合には、以下のようなメッセージボックスが表示される。
001.png
レジストリにワトソン博士(drwtsn32.exe)を登録しておくことで、上記エラー直後に自動的にダンプファイルを作成することができる。

以下のオプションを指定してワトソン博士を起動することで、レジストリに登録することができる。

drwtsn32 -i

レジストリの場所 Edit

登録される場所

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug

002.png
※「Auto」が0だと、アプリケーションエラー時に「Debugger」を起動するか確認メッセージが表示される。

また、ワトソン博士以外にも、WinDBGやVisualStudio等を登録することができる。

ダンプファイル作成 Edit

アプリケーションエラーの再現 Edit

レジストリにワトソン博士が登録されている状態でアプリケーションエラーを発生されると、以下のメッセージが表示され、ダンプファイルが作成される。
003.png

メッセージを閉じた後、ワトソン博士を起動してダンプファイルが作成されていることを確認する。
010.png

ダンプファイル解析環境(開発者側) Edit

環境の準備 Edit

WinDBGをインストール Edit

WinDBGは、WindowsSDKに付属するDebugging Tools for Windowsに含まれている。
DL:http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=8279

環境変数の設定 Edit

WinDBGの利便性を向上させるため、あらかじめ以下のシステム環境変数の設定を行うことを推奨する。

システム環境変数
_NT_SYMBOL_PATHsrv*D:\SymCache*http://msdl.microsoft.com/downloads/symbols
_NT_SOURCE_PATHsrv*

※太字は、OSのシンボルファイルをキャッシュする場所の指定。任意のディレクトリを指定すること。

ダンプファイルの解析 Edit

ユーザ側から受け取る情報 Edit

  • クラッシュダンプファイル(user.dmp)
  • エラーが発生したアプリケーションのバージョン

プロジェクトのビルド Edit

ユーザ側でアプリケーションエラーとなったexeと同じバージョンのプロジェクトを用意して、VisualStudioでプロジェクトを開く。
プロジェクトの構成(Debug/Release)も、ユーザ側でアプリケーションエラーとなったexeと同じものを選択すること。

  1. プロジェクトの設定画面を開き、上で選択した構成に対して以下の設定を行う。
    1. 「C/C++」タブ→「カテゴリ:一般」の「デバッグ情報」で「プログラムデータベースを使用」または「エディットコンテニュー用のプログラムデータベース」を選択する。
      005.png
    2. 「リンク」タブ→「カテゴリ:一般」の「デバッグ情報を生成する」のチェックを付ける。
      006.png
  2. リビルドを行う。これで、出力フォルダにシンボルファイル(プロジェクト名.pdb)が作成される。

WinDBGでダンプ解析 Edit

WinDBGを起動して、ユーザから受け取ったダンプファイルをドラッグ&ドロップする。
ワークスペースを作成するか聞かれるが、必要がなければ「NO」を選択すればよい。
007.png

以下のようなコマンドウィンドウが表示される。最下部の入力ボックスにコマンドを入力して解析を進めていく。
008.png

以下の簡易解析コマンドを行うことで、簡単に原因が特定できる場合もある。

!analyze -v

クラッシュ箇所のソースファイルを表示する場合は以下の手順を行う。

  1. シンボルファイルを追加する。(pdbファイルが作成されたフォルダを指定)
    .sympath+ <pdbファイルの場所>
  2. ソースファイルを追加する。(ソースファイルの場所を指定。通常はdswファイルのある場所でよいはず。他の場所にもソースがある場合は、コマンドを繰り返すことで複数指定可。)
    .srcpath+ <ソースファイルの場所>
  3. シンボルの再読込。
    .reload

これで、クラッシュした箇所のソースが表示されるので、コールスタックウィンドウを開いて上位関数まで辿るといった解析を行うことができる。
009.png


添付ファイル: file010.png 4件 [詳細] file009.png 4件 [詳細] file008.png 4件 [詳細] file007.png 4件 [詳細] file006.png 4件 [詳細] file005.png 4件 [詳細] file003.png 4件 [詳細] file002.png 5件 [詳細] file001.png 5件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-05-26 (土) 13:42:02 (2180d)