Windows软件奔溃场景抓Dump的手段
  

新手881277 29853人觉得有帮助

{{ttag.title}}
本帖最后由 新手881277 于 2024-4-22 21:35 编辑

Windows软件奔溃场景抓Dump的手段

1、软件奔溃出现弹窗时,不手动关闭,在任务管理器中找到对应的进程创建转储文件(此方法容易抓不到真正奔溃的现场,建议使用下面其它的方法进行)
                    

2、使用 procdump procdump.zip (423.8 KB, 下载次数: 29) 抓取dump
某进程(如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
3、将下面内容保存为.bat文件,按照需要手动修改对应保存dump的路径和进程名称;并以右键管理员身份运行。
  1. rem 可根据实际情况修改保存dump的磁盘路径DMPPATH=D:\dumps
  2. SET DMPPATH=D:\dumps
  3. rem 可根据实际情况修改需要抓取的进程的名称ProcName=explorer.exe
  4. SET ProcName=explorer.exe
  5. SC CONFIG WerSvc START= AUTO
  6. NET START WerSvc

  7. REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger" /f
  8. REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\DbgManagedDebugger" /f

  9. REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger" /f
  10. REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\DbgManagedDebugger" /f


  11. REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\%ProcName%"  /f
  12. REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\%ProcName%"  /t REG_SZ  /v DumpFolder /d   %DMPPATH% /f
  13. REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\%ProcName%"  /t REG_DWORD   /v DumpCount /d  10 /f
  14. REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\%ProcName%"  /t REG_DWORD   /v DumpType /d  2 /f

  15. PAUSE
复制代码
4、在异常的电脑上安装Windbg X64 Debuggers And Tools-x64_en-us.zip (18.41 MB, 下载次数: 20) ,然后以管理员身份打开CMD窗口,执行"C:\Program Files\Windows Kits\8.1\Debuggers\x64\windbg.exe" -I命令。出现下面得弹窗就说明设置成功了。
         

653336626676924d8b.jpg (39.02 KB, 下载次数: 1)

653336626676924d8b.jpg

打赏鼓励作者,期待更多好文!

打赏
20人已打赏

15082161216 发表于 2023-3-10 11:28
  
感谢大佬分享,学习学习!
dhf 发表于 2023-3-11 13:05
  
感谢楼主的精彩分享,有助工作!!!
小鱼儿 发表于 2023-3-18 13:35
  
感谢大佬分享,学习学习!
日出 发表于 2023-3-18 13:35
  
感谢大佬分享,学习学习!
梦境人生 发表于 2023-3-18 13:36
  
感谢大佬分享,学习学习!
唐三平 发表于 2023-3-18 13:36
  
感谢大佬分享,学习学习!
小德 发表于 2023-3-18 13:46
  
感谢大佬分享,学习学习!
小西北 发表于 2023-3-18 13:46
  
感谢大佬分享,学习学习!
朱墩2 发表于 2023-3-18 13:46
  
感谢大佬分享,学习学习!
发表新帖
热门标签
全部标签>
每日一问
技术盲盒
干货满满
技术笔记
新版本体验
产品连连看
2023技术争霸赛专题
技术咨询
GIF动图学习
功能体验
标准化排查
信服课堂视频
自助服务平台操作指引
社区帮助指南
通用技术
秒懂零信任
答题自测
安装部署配置
上网策略
SANGFOR资讯
技术晨报
项目案例
深信服技术支持平台
畅聊IT
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
安全攻防
测试报告
日志审计
问题分析处理
流量管理
每日一记
运维工具
云计算知识
用户认证
原创分享
解决方案
sangfor周刊
VPN 对接
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告
玩转零信任
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
每周精选

本版版主

468
220
32

发帖

粉丝

关注

本版达人

新手89785...

本周建议达人

YangZhe...

本周分享达人

runner

本周提问达人