WinDbg 在 msdl.microsoft.com 上找不到 mfc90 版本 9.0.30729.4148 符号

Posted

技术标签:

【中文标题】WinDbg 在 msdl.microsoft.com 上找不到 mfc90 版本 9.0.30729.4148 符号【英文标题】:WinDbg can't find mfc90 version 9.0.30729.4148 symbols on msdl.microsoft.com 【发布时间】:2011-02-16 08:47:45 【问题描述】:

那些 mfc 符号在哪里?

一些背景信息:

我有一个要在 WinDbg 中分析的故障转储。 我的符号路径包含http://msdl.microsoft.com/download/symbols 9.0.30729.4148 版本似乎是由某些 Windows 更新安装的 当转储包含较早版本的 mfc90 时,WinDbg 会使用相同的设置在 Microsoft 符号服务器上定位它。 当我使用 !sym 噪声时,mfc90.dll 的输出包含: SYMSRV:http://msdl.microsoft.com/download/symbols/mfc90.dll/4A596D4939c000/mfc90.dll 未找到 同样的事情发生在两台不同的计算机上

符号存在于服务器上,但 WinDbg 无法获取它们。

【问题讨论】:

好吧,现在我找到了符号 - 在 c:\windows\symbols 中。我刚刚在 VC++ 中调试了程序并查看了模块,它具有相同的 mfc 版本,并且在 c:\windows\symbols 中找到了符号。不过,问题仍然存在 - 为什么 msdl.microsoft.com 上没有这些符号?我将在 microsoft connect 提交错误报告,看看他们要说什么。 嗯,如果我将它们从 c:\windows\symbols 移开,Visual Studio (2008, SP1) 似乎可以从微软符号服务器获取符号。也许我需要更新 WinDbg(我的从 2009 年 2 月开始)。服务器的工作方式可能发生了一些变化。 现在我已经安装了最新的 WinDbg 版本,但它仍然无法从 MS 符号服务器加载 mfc90 9.0.30729.4148 的符号...有谁知道我可以在哪里报告这个错误? 您尝试过 hofingerandi 下面解释的方法吗?这解决了我的问题。 【参考方案1】:

我在 Visual Studio 中也有类似的行为; MFC90.dll 的符号不会加载。单击 mfc90.dll 的“符号加载信息”会显示“未找到匹配的二进制文件”。

我在我的电脑上搜索了正确的 dll 并在以下位置找到了它

C:\WINDOWS\WinSxS\x86_Microsoft.VC90.MFC_1fc8b3b9a1e18e3b_9.0.30729.4148_x-ww_a57c1f53

请注意,此路径当然只包含 dll,但不包含 .pdb 文件。

无论如何,将此路径添加到符号搜索路径后,Visual Studio 能够从 Microsoft 符号服务器下载正确的 pdb 文件。

如果本地找不到所需的dll,我想ModuleRescue可以提供帮助。

【讨论】:

这个答案实际上听起来很奇怪,但对我来说效果很好。谢谢!

以上是关于WinDbg 在 msdl.microsoft.com 上找不到 mfc90 版本 9.0.30729.4148 符号的主要内容,如果未能解决你的问题,请参考以下文章

WinDbg链接

WinDBG 调试命令大全

WinDbg

windbg 简单使用

windbg学习进阶之——windbg字段名及其意义

如何用windbg调试因需加载的DLL