「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>ダンプ取得に使用するツールの一覧]] * 目次 [#n75b1737] #contents *概要 [#faf93379] -sysinternalsのツールの一つ。 -UMPDの後継ツール(?) *詳細 [#w48f8878] -使い方について。 -[[コマンド プロンプト>CMD]]を管理者権限で起動しておく。 **デバッグ [#raf0a721] -ファーストチャンスのキャプチャ(デバッガのアタッチ) procdump -ma -e 1 -t -n 10 XXXXX.exe **[[クラッシュ・ダンプ]] [#cab49b58] ***一般的な取得方法 [#u8e298db] 一般的な、[[クラッシュ・ダンプ]]の取得方法。 procdump.exe -ma -e XXXXX.exe ***プロセスIDで取得 [#h3a8ecf4] procdump -a -r -ma <プロセス ID> <出力先フォルダ> **[[ハング・ダンプ]] [#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オプション~ 指定プロセスがハングアップした場合(ウィンドウメッセージに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, ...|例外およびデバッグ・ログの内容を組込フィルタ| |3|-fx Exclude_Filter, ...|例外およびデバッグ・ログの内容を除外フィルタ| |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] -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]], [[:障害対応]], [[:デバッグ]], [[:ツール類]]