0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windowsアプリにダンプ吐かせる設定

Posted at

レジストリ設定

※Windowsをアップデートすると消えることがあるっぽい。その場合は再設定する。

レジストリエディタを起動し、以下のレジストリを選択
コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting

  1. キーにLocalDumpsが無ければ追加
  2. LocalDumpsに以下の値を追加
    名前「DumpFolder」、種類「展開可能な文字列」、値「C:\wer_dumps」(出力先)
    名前「DumpCount」、種類「DWORD(32ビット値)」、値「3」(出力先のダンプファイル保持数)
    名前「DumpType」、種類「DWORD(32ビット値)」、値「2」(0:カスタム、1:ミニ、2:フル、※2だとファイルサイズ大きいので1でも良い?)

その他ダンプ解析のための準備

必要なソフト

WinDbg」をMicrosoft Storeから取得

VC++アプリビルド設定(VC++アプリ開発中の場合)

ダンプ解析対象のアプリのビルド時に解析用のファイル群を出力させる設定
「プロジェクト」-「プロパティ」-「構成のプロパティ」
から以下を設定
「リンカー」-「デバッグ」-「マップファイルの作成」を「はい
「C/C++」-「出力ファイル」-「アセンブリの出力」を「アセンブリ コード、コンピューター語コード、ソース コード (/FAcs)

解析

※出力されたmapファイル内の「Preferred load address is 00400000」をWindbgのTraceアドレスに足す。
例:0x123456 + 00400000 == 0x00523456

出力されたアセンブリコード上から00523456がありそうな場所(00523456なら0x523000など)をテキスト検索してみる。

~?HogeHoge@FugaFuga@@AAA@Z 00523400 f aaa.obj
~?HogeHoge2@FugaFuga2@@BBB@ZZ 00523700 f bbb.obj

ならaaa.objのHogeHogeだとわかる。
aaa.objのHogeHogeのアドレスは0x00523400からなので、obj内のアドレスは0x00523456-0x00523400 == 56

aaa.objのHogeHogeの0x56バイト目を出力されたアセンブリから探す。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?