为了分析应用程序crash问题,首先需要进行相关的环境设置,然后才能得到此次异常原因,具体步骤如下:
1. 设置源码位置
步骤:File->Source File Path…
说明:源码文件路径是指工程文件.sln的同级目录
2. 设置符号文件位置
步骤:File->Symbol File Path…
说明:符号文件位置是指PDB文件所在的目录
3. 打开转储文件(Dump文件)
File->Open Crash Dump…
4. 输出异常报告
当打开dump文件之后,windbg会显示如下信息:
为了分析此次程序运行崩溃的原因,可以输入!analyze -v
命令,来获取当前异常的详细信息。
输入!analyze -v命令后,windbg会自动进行大量的分析,以下是软件异常的部分信息记录:
FAULTING_IP:
+5b032faf072ddb48
00000000 ?? ???
EXCEPTION_RECORD: 002afaec -- (.exr 0x2afaec)
ExceptionAddress: 00d91006 (aLittleCode!GetStudentInfo+0x00000006)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 00000000
Parameter[1]: 00000100
Attempt to read from address 00000100
FAULTING_THREAD: 00001f24
DEFAULT_BUCKET_ID: WRONG_SYMBOLS
我们会根据!analyze命令来分析此次程序奔溃的原因,下一篇将分析windbg给出的异常报告,会重点解读比较重要的字段。