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

新手881277 114313人觉得有帮助

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

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

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

2、使用 procdump procdump.zip (423.8 KB, 下载次数: 55) 抓取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, 下载次数: 26) ,然后以管理员身份打开CMD窗口,执行"C:\Program Files\Windows Kits\8.1\Debuggers\x64\windbg.exe" -I命令。出现下面得弹窗就说明设置成功了。
         

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

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
  
感谢大佬分享,学习学习!
发表新帖
热门标签
全部标签>
新版本体验
每日一问
标准化排查
信服课堂视频
GIF动图学习
产品连连看
纪元平台
社区新周刊
平台使用
功能体验
安全效果
高手请过招
【 社区to talk】
答题自测
技术笔记
网络基础知识
云化安全能力
专家问答
安装部署配置
上网策略
每周精选
畅聊IT
技术圆桌
在线直播
MVP
升级
安全攻防
测试报告
日志审计
问题分析处理
流量管理
每日一记
运维工具
用户认证
原创分享
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
排障笔记本
产品预警公告
玩转零信任
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
2023技术争霸赛专题
卧龙计划
华北区拉练
天逸直播
以战代练
秒懂零信任
技术晨报
技术盲盒
山东区技术晨报
文档捉虫
齐鲁TV
华北区交付直播
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
排障那些事
西北区每日一问
升级&主动服务
高频问题集锦
POC测试案例
全能先锋系列
专家说
热门活动
产品动态
行业实践
产品解析
关键解决方案

本版版主

6
12
27

发帖

粉丝

关注

5
10
7

发帖

粉丝

关注

32
38
46

发帖

粉丝

关注

本版达人

新手89785...

本周建议达人

YangZhe...

本周分享达人

runner

本周提问达人