【だんぷふぁいる】

ダンプファイル とは?

最終更新:
💡 メモリや処理の状態を保存し、後から調べる手がかり

メモリや処理の状態をファイルへ保存し、後からデバッガーなどで調べるためのデータ。ここでは障害調査に使うメモリダンプを扱う。クラッシュ時だけでなく動作中にも取得でき、保存する情報は種類や設定で異なる。

📌 このページのポイント
その時の状態を保存し、後から調べる障害発生OS・アプリの不具合ダンプ状態を保存範囲は設定解析WinDbgGDBなど動作中にも取得できる情報量は異なる原因確定とは別全ての動作の履歴を再生する記録ではない
障害時と動作中に取得する二つの経路と、後から解析する流れです。矢印は取得と解析の流れを示します。取得設定によって情報の範囲や保存の可否が変わります。
ひよこ ひよこ
ダンプファイルは、何を残すの?
ペンギン先生 ペンギン先生
取得した時点のメモリやスレッド、レジスタなど、処理の状態を残すよ。全ての情報が必ず入るわけではなく、ダンプの種類と取得設定で範囲が変わる。障害の調査に使う手がかりなんだ
ひよこ ひよこ
クラッシュしたときだけ作る?
ペンギン先生 ペンギン先生
動作中にも取得できるよ。WindowsのデバッガーやProcDump、対応環境のGDBなどで、処理が重い、応答しないといった状態を調べるために保存することもある。障害が起きても、設定によっては保存されないんだ
ひよこ ひよこ
Windowsなら、どのダンプも同じ?
ペンギン先生 ペンギン先生
OSのダンプとアプリのダンプは対象が違うよ。OSにも完全、カーネル、小さなダンプなどの種類がある。ユーザーモードのminidumpも、名前だけでは含まれる量を決められない。保存先やサイズは実際の設定を確認しよう
ひよこ ひよこ
開けば、原因が一発で分かる?
ペンギン先生 ペンギン先生
WinDbgの!analyzeは自動分析の出発点になるけれど、結果が原因の確定とは限らないよ。シンボルや実行ファイルなども必要になることがある。その瞬間の状態なので、そこに至る全ての動作を再生する記録とも違うんだ
ひよこ ひよこ
Linuxのコアダンプも同じようなもの?
ペンギン先生 ペンギン先生
プロセスのメモリや状態を残して後から調べる点は似ているよ。GDBでは、クラッシュ後の調査や対応環境での動作中の取得ができる。メモリにあった情報を含み得るので、共有先や保管方法も確かめよう
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ダンプファイル」って出てきたら「メモリや処理の状態を保存し、後から調べるためのファイル」と思えばだいたいOK!
📖 おまけ:英語の意味
「Dump File」 = 書き出したデータのファイル
💬 dumpはデータを書き出す意味でも使うよ。メモリダンプなら、その時点の状態を残すイメージ。全メモリや動作の履歴を必ず含むとは限らないんだ

参考資料

← 用語集にもどる