Open棟梁Project - マイクロソフト系技術情報 Wiki
ダンプ解析やライブデバッグなどができます。
ダンプ解析は高度な技術を要しますが、クラッシュダンプに以下のコマンドを実行することで
スタックトレースを取得しプロセスをクラッシュさせたプログラムの特定などができます。
ダンプをWinDbgのKコマンドで確認した所、
以下の様にスタックトレースが出力された。
ChildEBP RetAddr 1c2fd0b8 774a5620 ntdll!KiFastSystemCallRet 1c2fd0bc 774d3c62 ntdll!NtWaitForSingleObject+0xc 1c2fd140 774d3d4b ntdll!RtlReportExceptionEx+0x14b 1c2fd180 774efa87 ntdll!RtlReportException+0x3c 1c2fd194 774efb0d ntdll!RtlpTerminateFailureFilter+0x14 1c2fd1a0 77449bdc ntdll!RtlReportCriticalFailure+0x6b 1c2fd1b4 77444067 ntdll!_EH4_CallFilterFunc+0x12 1c2fd1dc 774a5f79 ntdll!_except_handler4+0x8e 1c2fd200 774a5f4b ntdll!ExecuteHandler2+0x26 1c2fd2b0 774a5dd7 ntdll!ExecuteHandler+0x24 1c2fd2b0 774efaf8 ntdll!KiUserExceptionDispatcher+0xf 1c2fd624 774f0704 ntdll!RtlReportCriticalFailure+0x5b 1c2fd634 774f07f2 ntdll!RtlpReportHeapFailure+0x21 1c2fd668 774afc25 ntdll!RtlpLogHeapFailure+0xa1 1c2fd694 763b9a26 ntdll!RtlFreeHeap+0x60 1c2fd6a8 76079c03 kernel32!HeapFree+0x14 Unable to load image C:\YYYYY\XXXXX.dll, Win32 error 0n2 *** WARNING: Unable to verify timestamp for XXXXX.dll *** ERROR: Module load completed but symbols could not be loaded for XXXXX.dll
|---> "C:\YYYYY\XXXXX.dll" がプロセスをクラッシュさせている。
クラッシュ分析ヒューリスティックにより現在の例外に関する詳細情報を表示
スレッド一覧表示
スレッドのコール・スタックを表示
カレント・スレッドの設定
現在のコール・スタックの引数、ローカル変数を確認できる。
クラッシュ分析ヒューリスティックにより現在の例外に関する詳細情報を表示
スレッドの状態を表示
なお、ここに表示される
は、以下のコマンドを使用して値を確認できる。
ヒープマネージャに管理されるヒープ内の利用状況に関する情報を所得したい場合、
ダンプ取得コマンドを実行する前に、グローバルフラグを使用して
を有効にする必要がある。
※ [ダンプの種類と概要、取得ツール]のシートの[メモリリーク分析用のダンプ]を参照のこと。
なお、リークを疑っている場合、同じダンプを見ても解らないので、差分を見るなどする。
若しくは、UMDHツールを使用してログ出力してヒープの差分を確認するなどする。
任意のツールを使用してユーザモード・プロセスダンプを取得する。
その場合は、↓を実行してヒープ内のメモリ利用状況を確認する。