zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    用户与组
    初识linux
    权限管理
    认识vim 编辑器
    文件归档
    路由相关术语
    Access、Hybrid和Trunk
    #error作用
    交换芯片收发包的 DMA 实现原理
    linux网络学习
  • 原文地址:https://www.cnblogs.com/0523jy/p/14781081.html
Copyright © 2011-2022 走看看