1 Visual Studio调试dump文件确定程序崩溃代码位置

在程序发版之后如果程序在某些极端下崩溃通常会生成一个dump文件,这个dump文件存储了程序崩溃时调用堆栈以及崩溃位置,我们可以使用Visual Studio调试dump文件并确定程序崩溃代码,针对崩溃处的代码进行修改,避免程序crash。

Visual Studio调试dump文件需要的条件:

  • dump文件
  • 对应崩溃的程序或者动态库编译的pdb调试符号文件(所以即使是程序发版也要保存好每一个版本的pdb文件,以防之后程序崩溃由于缺少对应的pdb文件导致无法确定crash位置)
  • 对应崩溃的程序或者动态库编译的Visual Studio项目和源文件

1.1 在Visual Studio中打开dump文件

首先新打开一个Visual Studio,将dump文件拖到Visual Studio中打开,如下所示

Visual Studio 调试程序dump文件确定程序崩溃代码位置-StubbornHuang Blog

1.2 设置符号路径

点击设置符号路径。

这里可以将pdb文件和dump文件放在同一目录,调试时会自动找到dump文件,如果出现没有找到符号的问题,再按下面步骤设置符号路径。

Visual Studio 调试程序dump文件确定程序崩溃代码位置-StubbornHuang Blog

在打开的设置界面中,点击加号添加对应崩溃的程序或者动态库编译的pdb调试符号文件所在的目录,记住这里一定要勾选:加载除排除模块之外的所有模块,不然即使pdb文件是对应的也会出现无法加载的问题,导致无法定位错误。

Visual Studio 调试程序dump文件确定程序崩溃代码位置-StubbornHuang Blog

1.3 设置源代码路径

右键dump 项目,点击属性

Visual Studio 调试程序dump文件确定程序崩溃代码位置-StubbornHuang Blog

在打开的属性页,调试源文件中,将程序或者动态库的Visual Studio的项目文件sln所在的目录添加到下面,保存退出。

Visual Studio 调试程序dump文件确定程序崩溃代码位置-StubbornHuang Blog

1.4 调试

上述三个设置都设置好之后,在首先点击使用仅限本机进行调试,如果一切顺利就可以看到崩溃时的代码位置。

Visual Studio 调试程序dump文件确定程序崩溃代码位置-StubbornHuang Blog