【问题标题】:How can I get a stack trace from a core dump generated via Windows MiniDump calls?如何从通过 Windows MiniDump 调用生成的核心转储中获取堆栈跟踪?
【发布时间】:2014-01-30 22:56:06
【问题描述】:

我有一个用 mingw 编译的 exe,但核心转储是通过 Windows MiniDump 函数生成的。如果我在 WinDbg 中打开核心转储,将调用堆栈地址复制到文本文件,然后通过 addr2line 运行它就可以了。但是,当然,必须有更好的方法。是否有其他调试器可以解析 gcc 生成的调试信息和 minidump 文件?

【问题讨论】:

  • 通常,如果您在 windbg 或 Visual Studio 调试器中打开转储文件,它将自动加载可用的符号并为您提供调用堆栈。您是否有生成转储的构建的可执行文件和 PDB 文件?让它们始终可用的一个好方法是使用符号服务器存储它们。
  • @RetiredNinja 正如我所说,可执行文件是构建 win mingw-gcc,因此没有 PDB 文件。

标签: c++ c windows mingw coredump


【解决方案1】:

您可以使用多种工具(Visual Studio、WinDbg、DebugDiag)从小型转储中提取调用堆栈甚至诊断。我已经写了一个简短的“操作方法”指南,which you can find here

如果您只看到地址而不是实际的函数调用名称和位置,则很可能是您正在使用的工具的 your symbol path is not set up correctly,或者您的应用程序中的 .pdb 文件丢失(和/或你还没有设置符号服务器)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    • 2014-05-14
    • 2011-12-18
    • 1970-01-01
    • 2012-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多