【问题标题】:Loaded Windows minidump file, now can't load binary?已加载 Windows minidump 文件,现在无法加载二进制文件?
【发布时间】:2014-02-19 11:25:01
【问题描述】:

我将 minidump 文件加载到 Visual Studio 2010 中,从我的程序文件夹和 Microsoft 符号服务器中加载了所有符号,然后我选择了“仅调试本机”,程序运行到崩溃并出现相同的错误当 exe 崩溃时显示在远程计算机上。

现在出现错误“program.exe not found”和“program.exe was not found in minidump。您需要加载二进制文件才能找到当前堆栈帧的来源”

当我点击'Browse and find program.exe'时,我选择了它但VS不会打开它?

【问题讨论】:

  • 最好关注 minidump 中的“mini”。它包含恢复调试会话所需的最少数据。它排除 EXE 和 DLL 文件中的原始代码。如果您没有与崩溃计算机使用的那些文件精确 匹配,那么调试器就会变得不耐烦。完全匹配是逐字节相同的,并且文件上的时间戳完全相同。如果您没有副本,请让客户将其寄回给您。
  • @HansPassant,客户有创建 minidump 文件的 exe 文件,我有匹配的 pdb 文件和源文件。所以,我不确定下一步该怎么做,为什么 VS 不会打开 exe?任何想法如何进行?
  • 不,这无济于事。它只是列出了更多有问题的人,没有有用的答案。我只是遇到了同样的问题,如果我们能弄清楚,我会在这里发布答案。

标签: visual-studio debugging minidump


【解决方案1】:

这个对话框“浏览并查找...”告诉我们两个重要的信息:

  • 默认情况下查找的位置(完整路径)
  • 它尝试加载的文件的名称(exe 或 dll)

同时,它对另外两个事实保持沉默:

  • 在同一目录下寻找exename.pdb/dllname.pdb

  • 它检查二进制文件中的精确(大小和时间戳)匹配,并且不费心去告诉,“打开”按钮只是闲置。

只要你选择它要求的文件,把它放在它查看的目录中,并添加相应的 pdb 文件,它肯定会工作。只有 100% 确定您提供给调试器的 dll/exe/pdb 组合与创建 minidump 时正在运行的组合完全相同。

【讨论】:

  • 我认为这很清楚。问题是从哪里获取 vcruntime140.dll,因为这是一个微软库,微软符号服务器应该自动传递这个
【解决方案2】:

我知道这是旧的,我找到的解决方案很愚蠢,但会帮助陷入困境的人。这个问题在最新的 VS 2019 上仍然存在。

因此,诀窍是使用“浏览并找到 *.dll”链接,打开二进制文件所在的文件夹。复制二进制文件并在同一窗口中,将其粘贴到计算机上的不同位置。现在点击“打开”。它应该加载二进制文件并显示调用堆栈!

从这个帖子获得帮助 - https://social.msdn.microsoft.com/Forums/vstudio/en-US/81681f0f-42ac-469f-85bc-cb85b8771e60/cant-load-executable-to-go-with-crash-mini-dump?forum=vsdebug

【讨论】:

    猜你喜欢
    • 2021-01-13
    • 1970-01-01
    • 2019-02-19
    • 1970-01-01
    • 2021-12-13
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    • 2011-01-02
    相关资源
    最近更新 更多