Visual c++ mfc140.dll版本14.0.24212.0未从microsoft symbols服务器下载

Visual c++ mfc140.dll版本14.0.24212.0未从microsoft symbols服务器下载,visual-c++,visual-studio-2015,mfc,windbg,symbol-server,Visual C++,Visual Studio 2015,Mfc,Windbg,Symbol Server,我正在使用Windbg调试一个转储,该转储在主线程调用堆栈上具有mfc140.dll版本14.0.24212.0。由于某种原因,它无法下载此版本的mfc140 这是打开sym NOISHING的日志: SYMSRV: BYINDEX: 0xC c:\websymbols*http://msdl.microsoft.com/download/symbols mfc140.dll 578697145cc000 SYMSRV: c:\websy

我正在使用Windbg调试一个转储,该转储在主线程调用堆栈上具有mfc140.dll版本14.0.24212.0。由于某种原因,它无法下载此版本的mfc140

这是打开sym NOISHING的日志:

SYMSRV:  BYINDEX: 0xC
         c:\websymbols*http://msdl.microsoft.com/download/symbols
         mfc140.dll
         578697145cc000
SYMSRV:  c:\websymbols\mfc140.dll\578697145cc000\mfc140.dll - file not found
SYMSRV:  HTTPGET: /download/symbols/index2.txt
SYMSRV:  HttpQueryInfo: 400 - HTTP_STATUS_BAD_REQUEST
SYMSRV:  HTTPGET: /download/symbols/mfc140.dll/578697145cc000/mfc140.dll
SYMSRV:  HttpQueryInfo: 404 - HTTP_STATUS_NOT_FOUND
SYMSRV:  HTTPGET: /download/symbols/mfc140.dll/578697145cc000/mfc140.dl_
SYMSRV:  HttpQueryInfo: 404 - HTTP_STATUS_NOT_FOUND
SYMSRV:  HTTPGET: /download/symbols/mfc140.dll/578697145cc000/file.ptr
SYMSRV:  HttpQueryInfo: 404 - HTTP_STATUS_NOT_FOUND
SYMSRV:  c:\websymbols\mfc140.dll\578697145cc000\mfc140.dll not found
SYMSRV:  http://msdl.microsoft.com/download/symbols/mfc140.dll/578697145cc000/mfc140.dll not found

DBGENG:  C:\Windows\System32\mfc140.dll image header does not match memory image header.
DBGENG:  C:\Windows\System32\mfc140.dll - Couldn't map image from disk.
DBGENG:  mfc140.dll - Partial symbol image load missing image info
DBGHELP: Module is not fully loaded into memory.
DBGHELP: Searching for symbols using debugger-provided data.
SYMSRV:  BYINDEX: 0x11
         c:\websymbols*http://msdl.microsoft.com/download/symbols
         mfc140.amd64.pdb
         A2209CF5D6D44F309A30F1D37A54A0F517
SYMSRV:  PATH: c:\websymbols\mfc140.amd64.pdb\A2209CF5D6D44F309A30F1D37A54A0F517\mfc140.amd64.pdb
*** WARNING: Unable to verify timestamp for mfc140.dll
DBGHELP: mfc140 - private symbols & lines 
        c:\websymbols\mfc140.amd64.pdb\A2209CF5D6D44F309A30F1D37A54A0F517\mfc140.amd64.pdb

若一个旧文件不在公共pdb服务器中,那个么实际上并没有人能说出发生了什么。这可能是构建系统配置的错误。或者是现在的政策。或者它已经被删除了


对于这种情况,我只建议更新可再发行到。MFC140.dll具有与VS2015、VS2017和VS2019相同的接口

我正在总结已经给出答案的评论和我的观察结果

Microsoft symbol server无法提供MFC/CRT的某些DLL

但是.pdb文件仍然存在

通过以下方式获取DLL:

  • 。请注意,您可能需要卸载更高版本的C运行时,还请注意,VS2015/VS2017/VS2019的C运行时是共享的
  • 从下载DLL

根据错误,是否需要下载mfc140.dll?其中包括vc++2015可再发行版本:如果它不在您的计算机中,您可以尝试安装它。“C:\Windows\System32\mfc140.dll映像头与内存映像头不匹配。”-听起来像是其中一个映像被篡改了,在您的计算机上或从中获取转储文件的计算机上。@IInspectable system32文件夹中mfc140.dll的版本为14.0.24215.0,转储文件需要14.0.24212.0。@FletchZhou MSFT为什么不从microsoft symbols服务器下载?调试器会从symbol服务器加载符号。它无法在系统中找到匹配的二进制文件,无法重建转储进程的内存。符号服务器不提供二进制文件。你必须自己把它们准备好,“它刚刚消失”是一种解释。不过,这不是一个解决方案。我需要分析来自用户的崩溃转储。当然,如果我可以在我的环境中重新创建问题,我将不需要特定的版本。无论如何,你的回答帮助了我。现在知道“MFC140.dll对VS2015、VS2017和VS2019具有相同的接口”后,我发现我需要卸载VS2017运行时才能安装14.0.24212.0版的vc_redist.x64.exe。安装vc_redist.x64.exe是获得正确MFC140.dll的最简单方法,结果是symbol server中只缺少dll,而不是。PDBA在我安装了14.0.24212.0版的运行时后,我无法处理14.0.24215.1版的另一个崩溃转储。看起来Microsoft symbol server无法提供任何MFC DLL。在此处找到正确的一个,然后再次找到.pdb