VS2015调试dump文件时提示打不开KERNELBASE.dll

版权声明:本文为博主原创文章,转载请注明出处。更多精彩文章请关注微信公众号:写代码的苏东坡 https://blog.csdn.net/shihengzhen101/article/details/83448834

前言

之前的一篇文章"VS2015调试dump文件时提示未找到xxx.exe或xxx.dll"中,我简单的介绍了一下在调试dump文件是提示未找到exe或者dll的原因,那就是路径不正确或者版本不对应,最近在调试项目的时候发现了新的问题,那就是系统的dll不对应,如果是项目中dll的不对应我们可以还原版本找到,可是要是系统的dll不对应,那么我们只能从发布机上复制了,或者自己去下载了,具体的提示如下图所示:

问题展示

解决问题

一开始尝试把系统库的路径都加上让程序自己搜索,比如System32,SysWow64等等,但是还是找不到,貌似在我的机器上就没有这个版本的系统dll,如果能下载到对应版本的dll就好了,但是我尝试了一下还是不太容易找到的,并且后续可能有一大堆的dll找不到,要是一个个下载那得愁死,还是尝试其他方法吧,后来发现符号设置中有一项“Microsoft 符号服务器”,索性勾上试试,如下图所示,然后启动调试,
在这里插入图片描述
这时情况发生好转,没有立马提示找不到dll,而是开始下载所需要的那些系统dll,看样子是只下载指定路径中没有的,下载的过程比较长,可能是我的网比较慢的原因,下载过程如下图所示:
在这里插入图片描述
全部下载完成后果然可以正常调试了,查看下载路径下的KERNELBASE.dll的版本,与dump文件中指定的版本一致,截图如下:
在这里插入图片描述
至此我们就找到了系统dll版本不对应时应该如何调试崩溃dump文件的方法。

总结

  1. 当调试dump文件发现项目中的exe或者dll找不到时,需要通过版本控制找到对应文件。
  2. 当系统的dll或者exe找不到时,调试之前勾选符号设置中的“Microsoft 符号服务器”,下载完成后就可解决。

猜你喜欢

转载自blog.csdn.net/shihengzhen101/article/details/83448834