传统dump文件抓取方式比较呆板,无法根据程序运行情况,快准狠
地抓取dump。
这里推荐微软开发的procdump
,下载地址为https://learn.microsoft.com/zh-cn/sysinternals/downloads/procdump
一、如何抓CPU爆高dump
procdump 20548 -ma -c 70 -s 5 -n 2 -o D:\testdump\
当进程 CPU
>70%
时连续间隔超过 5s
,自动抓两个dump 。
-
20548 -> 进程ID
-
-ma -> FullDump,为了减少痛苦,必须用这个
-
-c 70 -> CPU >70% 时开始抓取,你可以设置 大一点。
-
-s 5 -> 连续超过 5s 时
-
-n 2 -> 总计生成2个dump
-
-o xx -> dump保存地
二、如何抓程序卡死dump
procdump 20548 -ma -h -o D:\testdump\
当窗体5s内都没有响应,自动产生dump文件。
三、如何抓程序崩溃dump
procdump -ma -i D:\testdump
这个是将 procdump 注册到 AEDebug 中,当程序崩溃时自动产生dump文件。
也可以借助 Windows Error Reporting 机制生成,参见:https://www.cnblogs.com/huangxincheng/p/14811953.html
四、如何抓程序内存暴涨dump
procdump 20548 -m 4096 -ma -o D:\testdump\
当程序内存超过 4G 的时候自动生成 dump
五、如何抓指定异常dump
procdump 20860 -e 1 -f StackOverflowException -ma -o D:\testdump\
程序中一旦抛出了 StackOverflowException 异常,自动生成dump。
六、更多高级用法
见https://learn.microsoft.com/zh-cn/sysinternals/downloads/procdump