VS2010:尝试为故障转储加载符号时“找不到匹配的二进制文件”

Posted

技术标签:

【中文标题】VS2010:尝试为故障转储加载符号时“找不到匹配的二进制文件”【英文标题】:VS2010: "No matching binary found" when trying to load symbols for crashdump 【发布时间】:2012-08-31 03:07:54 【问题描述】:

出于测试目的,我正在 Visual Studio 2010 中调试一个 minidump(使用 .dump /ma 创建)。

我有可用于该转储的符号,但没有当前的二进制文件(它是一个可执行文件)。

VS2010 中的模块窗口显示“找不到匹配的二进制文件”,这似乎是正确的,因为在目标计算机上的路径上找不到它。

我仍然想加载符号,所以我右键单击模块,选择“从符号路径加载符号”(其中包含正确 pdb 的路径),但会弹出一个对话框,要求我选择二进制文件文件。我无法为我的模块加载符号。

为什么VS需要镜像文件? WinDbg 能够加载符号文件并毫无问题地向我显示错误堆栈。

【问题讨论】:

【参考方案1】:

我认为这是设计使然。 Visual Studio 由一个团队设计和开发,而 WinDbg 由另一个团队设计和开发,

http://msdn.microsoft.com/en-us/library/htzy3t6f.aspx

如果加载使用堆保存的小型转储文件,即使找不到应用程序二进制文件,Visual Studio 也可以加载符号。没有堆的小型转储文件需要二进制文件来加载符号。

如果你想让 Visual Studio 和 WinDbg 一样,你应该去 Microsoft Connect 并创建一个功能请求,

http://connect.microsoft.com/intro/

【讨论】:

我知道这是不同的产品。但也可以在您提供的链接上阅读:“如果您加载一个用堆保存的小型转储文件,即使找不到应用程序二进制文件,Visual Studio 也可以加载符号。”

以上是关于VS2010:尝试为故障转储加载符号时“找不到匹配的二进制文件”的主要内容,如果未能解决你的问题,请参考以下文章

WinDbg 加载符号需要很长时间;正在搜索大型网络 UNC 符号存储中的每个目录

vs2010 C# 当前不会命中断点。还没有为该文档加载任何符号。 求解决

VS 2010 远程调试器断点当前不会被命中。没有为此文档加载任何符号

vs2010调试老是在为.加载符号,特别慢,谁能告诉我怎么回事

仅在 VS 2010 上运行时:COMException:灾难性故障:错误代码:-2147418113

故障转储 - WinDbg - 强制 PDB 文件匹配不起作用?