-
Notifications
You must be signed in to change notification settings - Fork 0
MS_HangDump
nishi_74322014 edited this page Aug 3, 2026
·
1 revision
-
TOP > トラブルシュート > ダンプの概要(種類と取得)
-
ユーザモード・プロセス・ダンプ
- クラッシュ・ダンプ
- ハング・ダンプ
-
ユーザモード・プロセス・ダンプ
- ハングしている状態のプロセスにデバッガをアタッチしてダンプを取得する。
- ハングしているスレッドのスタックを見ることで、
ハングを起こしているプログラムコードの部位の特定が可能。 - しかし、クラッシュ・ダンプと違って、
アナライザ任せにできない場合もあり、難易度は若干、高い。
※ クラッシュ・ダンプは「落ちたスレッド」が自明だが、
ハング・ダンプはどのスレッドが原因かを全スレッドのスタックから読み解く必要がある。
デッドロックの切り分けには時間をずらして2〜3回取得し、
スタックが変化しないスレッドを探すのが定石。
OSや対象プロセス(マネージド、アンマネージド)によって
使用するツール・手順・設定等が異なるのでサポートと連携して行う。
以下は、ハング・ダンプの専用ツール。
クラッシュ・ダンプと併用可能なツールはダンプ取得に使用するツールの一覧を参照。
- Vista, Win7以降ではタスクマネージャから任意のタイミングでメモリダンプを取得できる。
- タスクマネージャのプロセス一覧からプロセスを選択し右クリック →「ダンプ ファイルの作成」
※ 取得できるダンプは「フルダンプ」でファイルのパスは固定となる(AppData\Local\Temp 以下)。
※ 64bit OS 上の 32bit プロセスを 64bit タスクマネージャからダンプすると、
マネージド スタックが読めないダンプになることがある。
その場合は 32bit 版のツール(C:\Windows\SysWOW64\taskmgr.exe ではなく
32bit の ProcDump / WinDbg)を使う。WOW64 を参照。
Sysinternals の Process Explorer
- Process Explorerのプロセス一覧からプロセスを選択し右クリック、
- 「Create Dump」から「Mini Dump」か「Full Dump」かを選択的に取得できる。
- また、ダンプ・ファイル名と保存場所を指定できる。
コマンドラインから条件付き・複数回のダンプ取得ができるため、
ハング調査では実務上こちらが便利。
procdump -ma <PID> フルダンプを1回
procdump -ma -n 3 -s 10 <PID> 10秒間隔で3回
procdump -ma -h <PID> ウィンドウがハング状態になったら取得
Win7 から、特に変更はなさそう。
Tags: 障害対応, デバッグ
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。