使用dump和pdb文件定位程序崩溃位置

本文介绍了Dump文件的用途,它是进程内存的镜像,常用于驱动程序的调试。通过MiniDumpWriteDump函数可以创建Dump文件,但全内存Dump会较大。当程序崩溃时,应保存pdb文件,并使用VS或WinDbg打开Dump进行调试。此外,建议在发布时备份pdb和exe,以便于问题排查。通过批处理脚本SavePDB.bat,可以在生成exe时自动备份pdb和exe。
摘要由CSDN通过智能技术生成

Dump文件是进程的内存镜像。可以把程序的执行状态通过调试器保存到dump文件中。Dump文件是用来给驱动程序编写人员调试驱动程序用的,这种文件必须用专用工具软件打开,比如使用VS、WinDbg打开。

用法参考链接: 用dump和pdb文件定位程序崩溃的位置_lemon-l的博客-CSDN博客_dump pdb

用到的核心API函数MiniDumpWriteDump详解:minidump详细介绍_huanongying131的博客-CSDN博客_minidump

Tips:

1.函数MiniDumpWriteDump使用参数MiniDumpWithFullMemory能保存变量的值,但生成的dump会大很多.

2.遇到弹出崩溃对话框,有"重试"按钮的一定要点"重试".

2.发布exe时,切记保存同版本的pdb文件;或一起发布,客户回传时将exe,pdb,dump一起回传.

3.将dump,pdb,exe放入生成时的目录(Debug),打开dump即可,不必设置符号路径

4.用VS2010打开dump,能看到调用老式函数崩溃时的源码位置(如:strcpy)

示例代码:

DumpTest: dump在MFC的使用测试, 封装dump类; 在InitInstance使用一次即可 (gitee.com)

用法:

1.将DumpFileManager.h和DumpFileManager.cpp包含到项目中

2.在App类的InitInstance()调用 DumpFileManager::GetIns()->SetCrashHandler();

代码扩展说明(自动备份pdb&exe):

增加SavePDB.bat,放到解决方案同级目录;

属性->后期生成事件->命令行 填入(包含引号) "$(SolutionDir)SavePDB.bat"

即可在生成exe时自动备份exe和pdb

更多细节参考SavePDB.bat内的注释

        

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值