Dump文件的抓取和分析

来源:互联网 发布:rpc端口 编辑:程序博客网 时间:2024/05/17 02:26

Dump文件的抓取

在WindowsXP下可以使用系统自带的drwtsn32.exe(华生医生)进行Dump文件抓取,但是在Vista以后的Windows版本中不再包含工具,这里主要说明使用Windbg截取的情形。

等待问题发生时抓取

1) 将Windbg Attach到发生问题的进程上,之后通过.Dump抓取Dump文件;

   2) adplus.vbs/adplus.exe –hang 抓取相关进程的dump 文件。

无需等待,待问题发生时自动抓取

1) 在问题发生的之前使用adplus.vbs/adplus.exe –crash监控相关进程的运行,在Crash或者退出的情况下,系统会自动抓取Dump文件;

 2)使用windbg –I ,将Windbg设置为默认即时调试器,问题发生时会自动弹出,并抓取Dump文件。

任意抓取:

1) 使用windbg -c,直接编辑相关命令或者使用脚本编辑相关命令;

     2) 使用adplus.vbs/adplus.exe -c <ConfigFile>,从配置文件中获取相关命令。


Dump文件的分析

使用VS环境进行分析

1) 打开Dump文件

File-> Open-> Project/Solution:找到待分析的Dump文件打开。

      2) 指定调试符号(PDB)文件路径

Tools->Option->Debugging->Symbos,选定Pdb文件所在的路径,如下图所示


      3) 指定源代码路径

在Solution Explorer中选中Solution右键,在弹出菜单中选择“Property”,Common Properties->Debug Source Files,选择源代码所在路径,如下图所示:


之后点击Debug,即可定位到崩溃的地方,注意这里所选择的路径为sln文件(解决方案文件)所在路径,而非vcproj文件(工程文件)所在的路径。

使用Windbg进行分析

1) 指定调试符号文件路径

File->Symbol File Path,选择符号文件路径,如下图所示:


2) 指定源代码所在路径

File->Source File Path,选择符号文件路径,如下图所示:


注意这里所选择的路径为sln文件(解决方案文件)所在路径,而非vcproj文件(工程文件)所在的路径。

  3) 打开Dump文件

File->Open Crash Dump,选择对应的Dump文件即可。

如果程序运行和源代码编译在同一台计算机上,且源代码文件和符号文件与应用程序编译时相比没有发生变化,

直接进行3)打开dmp文件即可调试。

0 0