ProcDump v10.11

マーク・ルシノヴィッチとアンドリュー・リチャーズ

公開日: 2021 年 8 月 18 日

DownloadProcDump のダウンロード(680 KB)

ProcDump for Linux のダウンロード (GitHub)

はじめに

ProcDump は、CPU スパイクのアプリケーションを監視し、スパイクの原因を特定するために管理者または開発者が使用できるスパイク中にクラッシュ ダンプを生成することを主な目的とするコマンド ライン ユーティリティです。 ProcDump には、ハング ウィンドウ監視 (Windowsとタスク マネージャーが使用するウィンドウ ハングと同じ定義を使用) も含まれており、ハンドルされない例外監視が含まれており、システム パフォーマンス カウンターの値に基づいてダンプを生成できます。 また、他のスクリプトに埋め込むことができる一般的なプロセス ダンプ ユーティリティとしても機能します。

ProcDump の使用

キャプチャの使用状況:

procdump.exe [-mm] [-ma] [-mp] [-mc Mask] [-md Callback_DLL] [-mk]
             [-n Count]
             [-s Seconds]
             [-c|-cl CPU_Usage [-u]]
             [-m|-ml Commit_Usage]
             [-p|-pl Counter_Threshold]
             [-h]
             [-e [1 [-g] [-b]]]
             [-l]
             [-t]
             [-f  Include_Filter, ...]
             [-fx Exclude_Filter, ...]
             [-o]
             [-r [1..5] [-a]]
             [-at Timeout]
             [-wer]
             [-64]
             {
                 {{[-w] Process_Name | Service_Name | PID} [Dump_File | Dump_Folder]}
             |
                 {-x Dump_Folder Image_File [Argument, ...]}
             }

インストールの使用法:

procdump.exe -i [Dump_Folder]
             [-mm] [-ma] [-mp] [-mc Mask] [-md Callback_DLL] [-mk]
             [-r]
             [-at Timeout]
             [-k]
             [-wer]

使用状況のアンインストール:

procdump.exe -u
パラメーター 説明
-a 停止を避けます。 -r が必要です。 同時ダンプの上限を超えたために、トリガーによってターゲットが長時間中断される場合、トリガーはスキップされます。
-at タイムアウト時に停止しないようにします。 トリガーのコレクションを N 秒で取り消します。
-b デバッグ ブレークポイントを例外として扱います (それ以外の場合は無視します)。
-c プロセスのダンプを作成する CPU しきい値。
-cl プロセスのダンプを作成する CPU しきい値を下回ります。
-d 指定した DLL の MiniDumpCallbackRoutine という名前のミニダンプ コールバック ルーチンを呼び出します。
-e プロセスで未処理の例外が発生したときにダンプを書き込みます。 最初のチャンス例外でダンプを作成するには、1 を含めます。
-f 最初のチャンス例外をフィルター処理します。 ワイルドカード (*) がサポートされています。 ダンプせずに名前を表示するには、空白 ("") フィルターを使用します。
-fx 例外とデバッグ ログの内容をフィルター処理 (除外) します。 ワイルドカードを利用できます。
-g マネージド プロセスでネイティブ デバッガーとして実行します (相互運用なし)。
-h プロセスにハングしたウィンドウがある場合はダンプを書き込みます (5 秒以上ウィンドウ メッセージに応答しません)。
-i AeDebug 事後デバッガーとして ProcDump をインストールします。 追加オプションとしてサポートされるのは、-ma、-mp、-d、および -r のみです。
-k 複製 (-r) 後、またはダンプ収集の最後にプロセスを強制終了する
-l プロセスのデバッグ ログを表示します。
-m ダンプを作成するメモリ コミットのしきい値 (MB 単位)。
-ma すべてのプロセス メモリを含むダンプ ファイルを書き込みます。 既定のダンプ形式には、スレッドとハンドルの情報のみが含まれます。
-mc カスタム ダンプ ファイルを書き込みます。 指定したMINIDUMP_TYPE マスク (16 進数) で定義されたメモリを含めます。
-md コールバック ダンプ ファイルを書き込みます。 指定した DLL の MiniDumpCallbackRoutine という名前の MiniDumpWriteDump コールバック ルーチンによって定義されたメモリを含めます。
-mk カーネル ダンプ ファイルも書き込みます。 プロセス内のスレッドのカーネル スタックを含めます。 クローン (-r) を使用する場合、OS はカーネル ダンプ (-mk) をサポートしていません。 複数のダンプ・サイズを使用する場合は、ダンプ・サイズごとに 1 つのカーネル・ダンプが作成されます。
-ml メモリ コミットが指定された MB 値を下回るとトリガーされます。
-mm ミニ ダンプ ファイルを書き込みます (既定)。
-mp スレッドとハンドルの情報と、すべての読み取り/書き込みプロセス メモリを含むダンプ ファイルを書き込みます。 ダンプ サイズを最小限に抑えるために、512 MB を超えるメモリ領域が検索され、見つかった場合は最大領域が除外されます。 メモリ領域は、同じサイズのメモリ割り当て領域のコレクションです。 この (キャッシュ) メモリを削除すると、ダンプのExchangeとSQL Serverが 90% 以上削減されます。
-n 終了する前に書き込むダンプの数。
-o 既存のダンプ ファイルを上書きします。
-p しきい値を超えたときに、指定されたパフォーマンス カウンターでトリガーされます。 注: 実行中のプロセスのインスタンスが複数ある場合にプロセス カウンターを指定するには、"\Process(<name>_<pid>)\counter" という構文でプロセス ID を使用します。
-pl パフォーマンス カウンターが指定した値を下回るとトリガーされます。
-r 複製を使用してダンプします。 同時制限は省略可能です (既定値は 1、最大 5)。
注意: コンカレンシー値が高い場合は、システムのパフォーマンスに影響を与える可能性があります。
- Windows 7: リフレクションを使用します。 OS では -e がサポートされていません。
- Windows 8.0: リフレクションを使用します。 OS では -e がサポートされていません。
- Windows 8.1+: PSS を使用します。 すべてのトリガーの種類がサポートされています。
-s ダンプが書き込まれる前の連続した秒数 (既定値は 10)。
-t プロセスの終了時にダンプを書き込みます。
-u 1 つのコア (-c で使用) に対する CPU 使用率を処理します。
唯一のオプションとして、事後デバッガーとして ProcDump をアンインストールします。
-w 指定したプロセスが実行されていない場合は、起動するまで待ちます。
-wer (最大) ダンプをキューに入Windows エラー報告。
-x 省略可能な引数を指定して、指定したイメージを起動します。 Microsoft Store アプリケーションまたはパッケージの場合、ProcDump は次のアクティブ化 (のみ) で開始されます。
-64 既定では、ProcDump は、64 ビット Windowsで実行されている場合、32 ビット プロセスの 32 ビット ダンプをキャプチャします。 このオプションは、64 ビット ダンプを作成するためにオーバーライドされます。 WOW64 サブシステムのデバッグにのみ使用します。
-? 使用 -? -e コマンド ラインの例を確認します。

ダンプ ファイル名を省略すると、既定値は <processname>_<datetime>.dmp.

コマンド ライン オプションを -accepteula 使用して、Sysinternals ライセンス契約に自動的に同意します。

自動終了:

名前 ProcDump-<PID> を持つイベントの設定は、Ctrl + C キーを押して ProcDump を正常に終了する場合と同じです

Filename:

既定のダンプ ファイル名: PROCESSNAME_YYMMDD_HHMMSS.dmp

次の置換がサポートされています。

代入 説明
PROCESSNAME [プロセス名]
プロセス ID PID
EXCEPTIONCODE 例外コード
YYMMDD 年/月/日
HHMMSS 時間/分/秒

使用例

"notepad" という名前のプロセスのミニ ダンプを書き込みます (一致するものは 1 つだけ存在できます)。

C:\>procdump メモ帳

PID '4572' を使用してプロセスの完全ダンプを書き込みます。

C:\>procdump -ma 4572

"メモ帳" という名前のプロセスから 5 秒離れた 3 つのミニ ダンプを書き込みます。

C:\>procdump -s 5 -n 3 メモ帳

5 秒間の CPU 使用率が 20% を超えると、"consume" という名前のプロセスのミニ ダンプを最大 3 つ書き込みます。

C:\>procdump -c 20 -s 5 -n 3 consume

Windowsのいずれかが 5 秒以上応答しない場合は、"hang.exe" という名前のプロセスのミニ ダンプを書き込みます。

C:\>procdump -h hang.exe hungwindow.dmp

システムの CPU 使用率の合計が 10 秒間 20% を超えた場合に、"outlook" という名前のプロセスのミニ ダンプを書き込みます。

C:\>procdump outlook -p "\Processor(_Total)\% プロセッサ時間" 20

Outlookのハンドル数が 10,000 を超えると、"outlook" という名前のプロセスの完全ダンプを書き込みます。

C:\>procdump -ma outlook -p "\Process(Outlook)\Handle Count" 10000

ハンドルされない例外がある場合は、Microsoft Exchange Information Microsoft Storeの MiniPlus ダンプを記述します。

C:\>procdump -mp -e store.exe

ダンプ、w3wp.exeの例外コード/名前を書き込まずに表示します。

C:\>procdump -e 1 -f "" w3wp.exe

例外のコード/名前に 'NotFound' が含まれている場合は、w3wp.exeのミニ ダンプを記述します。

C:\>procdump -e 1 -f NotFound w3wp.exe

プロセスを起動し、例外を監視します。

C:\>procdump -e 1 -f "" -x c:\dumps consume.exe

最新の "アプリケーション" の起動に登録し、アクティブ化を試みます。 新しい ProcDump インスタンスは、例外を監視するためにアクティブ化されると開始されます。

C:\>procdump -e 1 -f "" -x c:\dumpsMicrosoft.BingMaps_8wekyb3d8bbwe!AppexMaps

最新の 'パッケージ' の起動に登録します。 例外を監視するために (手動で) アクティブ化されると、新しい ProcDump インスタンスが開始されます。

C:\>procdump -e 1 -f "" -x c:\dumps Microsoft.BingMaps_1.2.0.136_x64__8wekyb3d8bbwe

Just-In-Time (AeDebug) デバッガーとして登録します。 c:\dumps で完全ダンプを作成します。

C:\>procdump -ma -i c:\dumps

コマンド ラインの例の一覧を参照してください (上記の例を示します)。

C:\>procdump -? -E

  • Windows内部ブック マーク・ルシノヴィチとデイヴィッド・ソロモンによるWindowsの内部に関する決定版の公式アップデートと正誤表ページ。
  • Windows Sysinternals Administrator's Reference Mark Russinovich と Aaron Margosis による Sysinternals ユーティリティの公式ガイドです。これには、すべてのツールの説明、それらの機能、トラブルシューティングに使用する方法、実際の使用例が含まれます。

DownloadProcDump のダウンロード(680 KB)

ProcDump for Linux のダウンロード (GitHub)

次の場合に実行されます。

  • クライアント: Windows 8.1以降。
  • サーバー: Windows Server 2012以降。

詳細情報