Skip to content

MS_ProcDump

nishi_74322014 edited this page Aug 3, 2026 · 1 revision

ProcDump

概要

  • Sysinternals のツールの一つ。
  • UMPDの後継ツール(?)
  • .NETのダンプも取得可能。

詳細

デバッグ

  • ファーストチャンスのキャプチャ(デバッガのアタッチ)
procdump -ma -e 1 -t -n 10 XXXXX.exe

クラッシュ・ダンプ

クラッシュ・ダンプ

一般的な取得方法

procdump.exe -ma -e XXXXX.exe

プロセスIDで取得

procdump -a -r -ma <プロセス ID> <出力先フォルダ>

マルチ・プロセスの場合

  • Process_Name で wait (-w) していると、以下が出力されて監視が停止する(取得できない)。
Multiple processes match the specified name.

ハング・ダンプ

ハング・ダンプ

メッセージ・ループのハング

procdump.exe -ma -h XXXXX.exe

リソース系のハング

  • CPU:exe の CPU 使用率が、5秒連続で 90% を超えた際にアプリのフルダンプを取得
procdump.exe -ma -s 5 -c 90 XXXXX.exe
  • メモリ:メモリコミットが 800MB を超えた際にアプリのフルダンプを取得
procdump -ma -m 800 XXXXX.exe

オプション

ダンプの種類

# オプション 説明 詳細
1 -mm 'Mini' dump
2 -ma 'Full' dump
3 -mp 'MiniPlus' dump
4 -mc Mask 'Custom' dump MINIDUMP_TYPE(16進数)で定義されたメモリを含める。
5 -md Callback_DLL 'Callback' dump コールバック・ルーチンで定義されたメモリを含める。
6 -mk 'Kernel' dump

入力と出力

入力はプロセス、出力はファイル。

  • 起動
{-x Dump_Folder Image_File [Argument, ...]}
  • 既存 or 待ち
{{[-w] Process_Name | Service_Name | PID} [Dump_File | Dump_Folder]}

クラッシュ・ダンプ関連

[-e [1 [-g] [-b]]]

-e オプション … 指定プロセスがクラッシュ(未処理の例外が発生)した際にダンプを取得

# オプション 説明
1 1 ファースト・チャンス例外のキャプチャ
2 -g ネイティブ・デバッガとして実行
3 -b デバッグ・ブレーク・ポイントを例外として処理

ハング・ダンプ関連

[-h ...]

-h オプション … 指定プロセスがハングアップした場合
(ウィンドウメッセージに5秒間以上応答していない場合)にダンプを取得

# オプション 説明
1 -s Seconds Seconds 秒以上、ダンプ取得の条件が続いた際にダンプを取得
2 -c CPU_Usage CPU使用率が n % を超えた際にダンプを取得
3 -cl CPU_Usage CPU使用率が n % を下回った際にダンプを取得
4 -p Counter_Threshold パフォーマンス・カウンタが閾値を超えた際にダンプを取得
5 -pl Counter_Threshold パフォーマンス・カウンタが閾値を下回った際にダンプを取得
6 -m Commit_Usage メモリコミット閾値(MB単位)を超えた際にダンプを取得
7 -ml Commit_Usage メモリコミット閾値(MB単位)を下回った際にダンプを取得
8 -u -c-cl に続け、CPU使用率をシングルコア基準の値とみなす

出力オプション

# オプション 説明
1 -o 既存のダンプファイルを上書
2 -n 書き込むダンプの数を指定
3 -t プロセスの終了時にダンプを作成する
4 -wer ダンプを Windows エラー報告のキューに入れる
5 -64 64ビットのダンプを作成する

デバッガ

# オプション 説明
1 -l プロセスのデバッグ・ログを表示
2 -f Include_Filter, ... 例外およびデバッグ・ログの内容を組込フィルタ
3 -fx Exclude_Filter, ... 例外およびデバッグ・ログの内容を除外フィルタ
4 -i ProcDump を AeDebug事後検証デバッガとしてインストール
5 -u AeDebug事後検証デバッガのアンインストール(以前の構成を復元)
  • アタッチは -e -g で行う。
  • インストール/アンインストール
procdump.exe -i [Dump_Folder] [-mm] [-ma] [-mp] [-mc Mask] [-md Callback_DLL] [-mk] [-r] [-k] [-wer]
procdump.exe -u

移行メモ: -u はコンテキストによって意味が異なる。 -c / -cl に続けた場合は「CPU使用率をシングルコア基準にする」、 単独で使った場合は「AeDebug 事後検証デバッガのアンインストール」。 原文でも別表に分かれているが、混同しやすいので注記する。

クローン

Windows 7、Windows Server 2012 R2 に導入されたプロセス リフレクション(Process Reflection)により、
プロセスをクローンし、クローンからメモリのスナップショットをダンプすることで、
取得後のプロセスを継続させることが出来る。

# オプション 説明
1 -r [1..5] プロセスをリフレクト(同時制限はオプション 1..5)
2 -a -r に続け、負荷による停止を避けるケースで利用

※ 本番環境でサービスを止めずにダンプを取りたい場合の要となるオプション。

補足(最新化): ProcDump は現在も更新が続いており、 Linux 版(ProcDump for Linux) も提供されている。 また Sysinternals には、GUI で同種の操作ができる ProcDumpExt / Process Explorer もある。

参考


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

NetDevInfraWiki

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

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally