VS2017 DUMP文件调试

基于VS2017的DUMP文件调试

  一、背景

           在项目开发过程中,经常会遇到莫名其妙的bug,甚至于不能重现,不好跟踪,导致不好解决。有种方法是尽可能详细的日志记录,有助于追踪bug。但依然不是特别直观。 

           在查找资料中,发现其实VS已经通过dump文件很好得解决了这个问题。

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

           

     二、使用

           需要用到四个文件:exe、dll、pdb、dump文件,需要注意的是这四个文件必须是一一对应,是同时生成的,不然可能导致调试不成功。

           PDB(Program Data Base),意即程序的基本数据,是VS编译链接时生成的文件。PDB文件主要存储了VS调试程序时所需要的基本信息,主要包括源文件名、变量名、函数名、FPO(帧指针)、对应的行号等等。因为存储的是调试信息,所以一般情况下PDB文件是在Debug模式下才会生成。在VS中可以进行设置,在Release版本中也可以生成PDB文件。(https://blog.csdn.net/wqfhenanxc/article/details/80674223)

           在Release下设置两处地方即可生成PDB文件:

           (1)

           (2)

              在打开EXE崩溃后,生成.dump文件,将其拷贝至包含exe和pdb文件同一目录,打开dump文件,即可进行调试。

测试例程,可参考以下博文:

https://blog.csdn.net/qq_23350817/article/details/108760060

强烈推荐以下博文:

window下使用SetUnhandledExceptionFilter捕获让程序的崩溃

https://blog.csdn.net/bingqingsuimeng/article/details/73497198

原文地址:https://www.cnblogs.com/0523jy/p/14781081.html