Skip to content

MS_DumpOverview

nishi_74322014 edited this page Aug 3, 2026 · 1 revision

ダンプの概要(種類と取得)

概要

解析

ダンプの取得・参照 → 解析により問題を特定できる可能性がある。

  • ソースコード提供がないミドルウェア、ツール類で問題が発生している場合
  • または、デバッガの使用できない本番環境で問題が発生した場合

限界

  • ダンプでは解析可能な範囲は限られるため、
    デバッガを使える開発・検証環境ではデバッガを使用する。

    例えば、任意のプロセスにVSデバッガを手動でアタッチすることもできるし、
    プロセス起動時にVSデバッガを自動的にアタッチすることもできる。

  • デバッガをインストールできない本番環境ではダンプに頼る。
    PDB(シンボル)やソースコードもあればなお良い。

種類

モード

取得タイミング

クラッシュ・ダンプ

クラッシュ・ダンプ

クラッシュ時にプロセスにデバッガをアタッチしてダンプを取得する。

問題が起きた時刻に近い情報(メモリ&スタック)を取得可能であるが、
上記に問題の情報が含まれないケースや、マルチスレッド環境下などで、
重要な情報をタイミングによって取り逃がしているケースはあり得る。

ハング・ダンプ

ハング・ダンプ

ハングしている状態のプロセスにデバッガをアタッチしてダンプを取得する。

ハングしているスレッドのスタックを見ることで
ハングを起こしているプログラムコードの部位の特定が比較的容易。

セルフ・ダンプ

  • UMPDや、WER(Windows Error Report)などのAPIを使用してダンプを取得可能。
  • アンマネージド・コード、マネージド・コードのクラッシュダンプ取得が可能。
  • アプリケーションでハンドル可能なので、より詳細なログを作成できる。

サイズ

ユーザモード・プロセス・ダンプの)フルダンプとミニダンプ

フルダンプ

  • プロセスの全仮想アドレス空間のダンプ
  • サポートされなくなりつつある。

ミニダンプ

  • 細かい制御が可能で、また、フルダンプより多くの情報が含まれる。
  • 取得可能な情報と、その制御方法については、以下を参照

移行メモ: 「ミニダンプのほうがフルダンプより多くの情報が含まれる」は一見矛盾するが、 これは MINIDUMP_TYPE のフラグ次第という意味。 ミニダンプ形式(.dmp)は「何を含めるか」をフラグで選べる可変フォーマットで、 MiniDumpWithFullMemory 等を組み合わせれば全メモリも含められる一方、 ハンドル情報やスレッド情報など、旧来の「フルダンプ」(.hdmp/ワトソン形式)には 無かった情報も含められる。 現在は ミニダンプ形式が標準で、旧フルダンプ形式は事実上使われない。

取得

注意点

セキュリティを考慮し、ダンプ出力先は
administrator などのユーザのみが参照できる位置とすること。

※ ダンプにはメモリ上の平文パスワードや個人情報が含まれうるため、
外部へ渡す際は取り扱いに注意する。

ダンプ取得に使用するツールの一覧

ダンプ取得に使用するツールの一覧

参照・分析

ダンプ参照・分析に使用するツールの一覧

ダンプ取得に使用するツールの一覧を参照。

参考


Tags: インフラストラクチャ, Windows, 障害対応, デバッグ

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally