「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>ダンプ取得に使用するツールの一覧]]

* 目次 [#n75b1737]
#contents

*概要 [#faf93379]
-sysinternalsのツールの一つ。
-UMPDの後継ツール(?)
-[[UMPD]]の後継ツール(?)
-.NETのダンプも取得可能。

*詳細 [#w48f8878]
-使い方について。
-[[コマンド プロンプト>CMD]]を管理者権限で起動しておく。

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

-その他の[[オプション>#kd0c7198]]

**[[クラッシュ・ダンプ]] [#cab49b58]

***一般的な取得方法 [#u8e298db]
一般的な、[[クラッシュ・ダンプ]]の取得方法。
 procdump.exe -ma -e XXXXX.exe

***プロセスIDで取得 [#h3a8ecf4]
プロセスIDでの、[[クラッシュ・ダンプ]]の取得方法。
 procdump -a -r -ma <プロセス ID> <出力先フォルダ>

***マルチ・プロセスの場合 [#od31c4c6]
-Process_Nameで wait (-w) していると、~
以下が出力されて監視が停止する(取得できない)。
 Multiple processes match the specified name.

-従って、「[[AeDebug事後検証デバッガ>#kd0c7198]]」~
として事前にインストールしておく必要がある。

**[[ハング・ダンプ]] [#lb8c15af]

***メッセージ・ループのハング [#l68927e0]
 procdump.exe –ma –h XXXXX.exe

***リソース系のハング [#d76b9efe]
-CPU~
exeのCPU使用率が、5秒連続で90%を超えた際にアプリのフルダンプを取得
 procdump.exe –ma –s 5 –c 90 XXXXX.exe

-メモリ~
メモリコミットが800MBを超えた際にアプリのフルダンプを取得
 procdump -ma -m 800 XXXXX.exe

-パフォーマンス・カウンタ~
...

**オプション [#g7209e04]

***ダンプの種類 [#sdd1f3da]

|#|オプション|説明|詳細|h
|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||

***入力と出力 [#e18a03b1]
入力はプロセス、出力はファイル。

-起動
 {-x Dump_Folder Image_File [Argument, ...]}

--入力:起動
 Image_File [Argument, ...]

--出力:ファイル or フォルダ
 Dump_Folder

-既存 or 待ち
 {{[-w] Process_Name | Service_Name | PID} [Dump_File | Dump_Folder]}

--入力:対象プロセス(-wで起動待ち可能)
---Process_Name
---Service_Name
---PID

--出力:ファイル or フォルダ
---Dump_File
---Dump_Folder

***[[クラッシュ・ダンプ]]関連 [#qd121095]
 [-e [1 [-g] [-b]]]

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

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

***[[ハング・ダンプ]]関連 [#e77066d7]
 [-h ...]
 [-h ...]

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

-関連オプション
|#|オプション|説明|h
|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使用率を、シングルコアを基準とした値とみなす|

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

***デバッガ [#kd0c7198]
|#|オプション|説明|h
|1|-l|プロセスのデバッグ・ログを表示|
|2|f Include_Filter, ...|例外およびデバッグ・ログの内容を組込フィルタ|
|2|-f Include_Filter, ...|例外およびデバッグ・ログの内容を組込フィルタ|
|3|-fx Exclude_Filter, ...|例外およびデバッグ・ログの内容を除外フィルタ|
|4|-i|ProcDumpを[[AeDebug事後検証デバッガ>クラッシュ・ダンプ#e1100caf]]としてインストール|
|4|-i|ProcDump を [[AeDebug事後検証デバッガ>クラッシュ・ダンプ#e1100caf]]としてインストール|
|5|-u|[[AeDebug事後検証デバッガ>クラッシュ・ダンプ#e1100caf]]のアンインストール(以前の構成を復元)|

-アタッチは、[[コチラ>#qd121095]](-e -g)で行う。

-[[AeDebug事後検証デバッガ>クラッシュ・ダンプ#e1100caf]]のインストール・アンインストール

--Install Usage: 
 procdump.exe -i [Dump_Folder]
                 [-mm] [-ma] [-mp] [-mc Mask] [-md Callback_DLL] [-mk]
                 [-r]
                 [-k]
                 [-wer]

--Uninstall Usage: 
 procdump.exe -u

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

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

*参考 [#d4174b11]

**概要 [#udd4d1d2]
-ProcDump~
https://technet.microsoft.com/ja-jp/sysinternals/dd996900.aspx
-Sysinternals ProcDump v4.0~
Writing a Plug-in for Sysinternals ProcDump v4.0~
http://msdn.microsoft.com/en-us/magazine/hh580738.aspx

-ProcDump - Wikipedia~
https://en.wikipedia.org/wiki/ProcDump

**詳細 [#i7da5038]
-ダンプの取り方について – Japan SharePoint Support Team Blog~
https://blogs.technet.microsoft.com/sharepoint_support/2016/04/11/dump/

-procdumpの使い方 - Qiita~
https://qiita.com/tetsu831018/items/3ee170e156ff758ed4df

-ProcDumpでダンプの取得: ダウンロードから基本的な使い方まで~
https://troushoo.blog.fc2.com/blog-entry-99.html

-Q&A | Trend Micro Business Support~
https://success.trendmicro.com/jp/solution/1118795

-ダンプの取り方について – Japan SharePoint Support Team Blog~
https://blogs.technet.microsoft.com/sharepoint_support/2016/04/11/dump/

-ProcDump を使用して、Virtual Machine Manager サービス~
(Vmmservice.exe) の問題をトラブルシューティングする方法~
https://support.microsoft.com/ja-jp/help/4294410/how-to-use-procdump-to-troubleshoot-virtual-machine-manager-service-vm

**その他 [#n4c590e5]
-ProcDumpツールの使い方 | 4D Japan Technical Support Team~
ProcDumpInterfaceの利用方法の紹介~
https://4d-jp.github.io/tech_notes/19-06-21-procdump/

-Linux 版の Sysinternals ProcDump を試す (1) - hibomaの日記~
https://hiboma.hatenadiary.jp/entry/2019/02/19/115839

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



トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS