某进程(如notepad.exe)一启动就崩溃,或者启动后过一段时间就崩溃。
32位进程: procdump.exe -e -ma -w notepad.exe
-e 当遇到崩溃时,抓取dump
-ma 生成full dump, 即包括进程的所有内存. 默认的dump格式包括线程和句柄信息.
-w notepad.exe 如果notepad.exe没有运行起来,则等待它运行
64位进程: procdump.exe -e -ma -w notepad.exe -64
如何判断需要加上 -64 参数?
当 64位系统中,procdump.exe -h -ma -w notepad.exe无法抓取到dump时,则在后面加上-64参数
某进程(如notepad.exe)CPU占用率间歇性升高 ,如突然升高到50%,持续5秒左右就回落。应研发要求,希望前线同事帮助抓取dump。
命令行输入命令如下:
32位进程: procdump -ma -c 40 -s 3 -n 2 -w notepad.exe
-ma 生成full dump, 即包括进程的所有内存. 默认的dump格式包括线程和句柄信息.
-c 40 在CPU使用率到达40%的时候, 生成dump文件.
-s 3 CPU阀值必须持续3秒才抓取dump文件.
-n 2 在该工具退出之前要抓取2个dump文件.
-w notepad.exe 如果该进程还没有运行的话,则等待它运行
64位进程: procdump -ma -c 40 -s 3 -n 2 -w notepad.exe -64
如何判断需要加上 -64 参数?
当 64位系统中,procdump -ma -c 40 -s 3 -n 2 -w notepad.exe无法抓取到dump时,则在后面加上-64参数
其他参数
-p 参数可以指定性能计数器。
示例1:procdump -p "\Process(notepad)\Handle Count" 100 explorer.exe 当notepad.exe的句柄数超过100个时,则抓取explorer.exe的dump
示例2:procdump -p "\Process(notepad)\Working Set" 1*1024*1024 notepad.exe 当notepad.exe的内存占用数超过1M时,则抓取notepad.exe的dump。
该命令可以和 -s 、-n等结合 。请参考第2条
-i 参数可以把自身安装为默认DUMP捕捉器。当进程崩溃时,会自动调用procdump.exe捕捉Crash Dump文件。 其他参数请自行体会
PS: 如果是某个进程未响应的情况也可以使用procdump来抓取dump:
例如某进程(如notepad.exe)经常性未响应。应研发要求,希望帮助抓取dump。
32位进程:procdump.exe -h -ma -w notepad.exe
-h 当该界面进程未响应时间超过5秒,抓取dump
-ma 生成full dump, 即包括进程的所有内存. 默认的dump格式包括线程和句柄信息.
-w notepad.exe 如果notepad.exe没有运行,则等待它运行
64位进程:procdump.exe -h -ma -w notepad.exe -64
如何判断需要加上 -64 参数
当 64位系统中,procdump.exe -h -ma -w notepad.exe无法抓取到dump时,则在后面加上-64参数
PS:若进程是保活的服务一直运行的,可以根据进程的PID抓Dump