winDbg 结合 pdb 分析 dump
一、概述
VS 本身可以设置符号路径来调试 dump转储文件,但是某些情况下项目使用了其他第三方库(比如使用了 vlc),而出错原因在vlc内部,我们就无法找到出错原因。或者说项目拆分成动态库,而出错原因在某个库内部,有时候 VS 也无法分析出错误原因,因此我们需要借助其他更强大的 dump 分析工具如 windbg。
1.1 下载地址:
windbg 不用在网上下载,win10有自带的(但需要已经下载了windows Kit),使用 everything 搜索一下,双击打开就行。若没有,则下面这个地址可以下载:
https://docs.microsoft.com/zh-cn/windows-hardware/drivers/debugger/debugger-download-tools
二、操作步骤
2.1 设置符号文件目录,-> Symbol File Path,即 pdb 文件目录,如多个 pdb 可以放到一个目录下:
2.2 打开 dump 文件,-> Open Crash Dump:
2.3 设置代码路径,-> Source Serch Path:
2.4 输入 !analyze -v,敲回车,等待分析:
2.5 完成后定位到 STACK_TEXT:
从2.5的图我们可以看到问题出在了 videoplayer 模块中 libvlc里面的 libvlc_media_player_stop 方法上,然后结合我们的程序稍加分析就能得到结论。