由于c++ std::exception在windbg里面调用堆栈显示不正确,可以通过加载了系统pdb和软件pdb后,!analyze -v可以分析出来,所有需要配置系统pdb。
1、把exe,pdb放到同一个目录下。
2、加载dmp文件(拖动dmp文件到windbg)。
3、设置pdb路径:File ->Symbol File Path,比如D:\Desktop\3dLayer,记得加上srv*加载微软dll的pdb(如果没有,可以打开vs的选项>调试>符号,勾选Microsoft符号服务器,随便运行项目自动下载),分号隔开。
4、(如果出现pdb加载不了的情况)使用!sym noisy强制加载,再使用 .reload /f 程序名.exe重新加载。
5、使用lm vm 3dlayer或者.sympath命令查看是否加载正确的pdb文件。
格式如下 00007ff6`6b5d0000 00007ff6`6c61d000 程序名 C (private pdb symbols) d:\desktop\程序名.pdb
6、使分析异常。
7、其他命令:
.exr -1 异常信息
kn、kbn、kv或kp 查看函数调用堆栈
.ecxr 切换到异常的上下文