我正在使用 Windbg 调试主线程调用堆栈上具有 mfc140.dll 版本 14.0.24212.0 的转储。由于某种原因,它无法下载此版本的 mfc140。
这是带有符号噪声的日志:
SYMSRV: BYINDEX: 0xC
c:websymbols*http://msdl.microsoft.com/download/symbols
mfc140.dll
578697145cc000
SYMSRV: c:websymbolsmfc140.dll578697145cc000mfc140.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:websymbolsmfc140.dll578697145cc000mfc140.dll not found
SYMSRV: http://msdl.microsoft.com/download/symbols/mfc140.dll/578697145cc000/mfc140.dll not found
DBGENG: C:WindowsSystem32mfc140.dll image header does not match memory image header.
DBGENG: C:WindowsSystem32mfc140.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:websymbolsmfc140.amd64.pdbA2209CF5D6D44F309A30F1D37A54A0F517mfc140.amd64.pdb
*** WARNING: Unable to verify timestamp for mfc140.dll
DBGHELP: mfc140 - private symbols & lines
c:websymbolsmfc140.amd64.pdbA2209CF5D6D44F309A30F1D37A54A0F517mfc140.amd64.pdb
如果旧文件不在公共 pdb 服务器中,没有人能真正说出发生了什么。这可能是构建系统配置的错误。或者这些时代的政策。或者它已经以某种方式被删除了。
对于这种情况,我只是建议将可再发行组件更新到最新版本。MFC140.dll具有相同的VS2015,VS2017和VS2019接口。
我正在总结评论、已经给出的答案和我的观察。
Microsoft符号服务器无法提供 MFC/CRT 的某些 DLL。
然而,.pdb文件就在那里。
通过以下方式获取 DLL:
- 安装正确的 C 运行时。请注意,您可能需要卸载更高版本的 C 运行时,另请注意 VS2015/VS2017/VS2019 的 C 运行时是共享的。
- 从非官方来源下载 DLL