【转】Dump抓取工具-ProcDump

【前沿】

相信大家都遇到過客戶機出現某個進程CPU佔用高的問題,那麼遇到該問題的時候你也會疑惑,有什麼軟件可以抓取看下究竟為什麼佔用高?那麼今天我們就要用到ProcDump

【工具介紹】

ProcDump是一個命令行工具,其主要目的是監視CPU峰值的應用程序,並產生了Dump轉儲文件來供開發人員分析。ProcDump還可以監測無響應程序等各種異常監測,並可以基於系統性能計數器的值轉儲。它也可以作為一般的進程轉儲實用程序,您可以在其他腳本嵌入。通俗點說他可以創建指定進程或者窗口的Dump,並且可以監控到指定程序佔用CPU超過一個閾值時候再去創建Dump的功能

【使用方法介紹】

用法:procdump [-a] [-c | -cl CPU使用率] [-u] [-s秒] [-n超過] [-e [1 [-b] [-f <過濾器,.. > ] [-g] [-h] [-l] [-m | -mL提交用法] [-ma | -mp] [-o] [-p | -pl計數器閾值] [-r] [ – T] [-d <回調DLL>] [-64] <[ – W] <進程名稱或服務名稱或PID> [轉儲文件] | -i <轉儲文件> | -u | -x <轉儲文件> <圖像文件> [參數]>] [ – ?[-e]

-c 參數表示CPU閾值,例如-c 70 就是CPU使用率達到70%再做操作

-cl 參數表示低於CPU閾值,例如-cl 10 就是CPU使用率低於10%再做操作

-d 名為調用指定的DLL的MiniDumpCallbackRoutine的轉儲回調例程。

-e 寫轉儲當進程遇到未處理的異常。包括:1,以創建轉儲第一次機會異常。

-g 作為運行在託管過程中(無需操作)本機調試器。

-l 顯示進程的調試日誌記錄。

-m 內存提交閾值MB在其中創建轉儲,指的-m 700 就是700M文件閥值

-ma 創建full dump, 即包括進程的所有內存. 默認的dump格式包括線程和句柄信息.

-ml 觸發內存時提交以下指定的MB值下降

-n 退出之前寫的轉儲數。在該工具退出之前要抓取多少個dump文件

-o 覆蓋現有的轉儲文件。

-s  CPU閥值必須持續多少秒才抓取dump文件

-h  指定某個無響應超過5秒的程序的dump文件

【示例】

寫出來與PID’4572’進程的完全轉儲:

C:\> procdump -ma 4572

當notepad.exe佔用CPU超過20,並且持續5秒就創建三個迷你dump文件

C:\> procdump -c 20 -s 5 -n 3 NOTEPAD.EXE

當hang.exe無響應超過5秒,就創建一個迷你dump文件

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

當Outlook進程句柄超過10000就創建完整dump

C:\> procdump -ma前景-p“\程序(如Outlook)\句柄計數”10000

備註:如果不指定ma的話,那麼默認創建minidump,full Dump指的是完整dump

下载及说明地址:https://technet.microsoft.com/en-us/sysinternals/dd996900.aspx