【问题标题】:Debugging the C crash dump on Windows x64在 Windows x64 上调试 C 故障转储
【发布时间】:2012-08-06 06:42:59
【问题描述】:

在 Windows x64 2008 R2 机器上创建了一个故障转储(通过设置 LocalDump 注册表项创建的完整转储,如 here 所述),我可以在同一台机器上使用 VS 2010 调试此转储文件(可以为我的模块加载符号,在堆栈跟踪中查看模块、函数名,在选择源文件后查看代码)但是当我将这个转储、必要的 EXE、DLLS 及其 PDB 和源文件复制到不同的 Windows x64 2008 R2 机器时VS 2010 在调用堆栈窗口中看不到模块名称和函数名称(尽管可以为我的模块加载符号)。我想知道我在这里缺少什么步骤。请帮忙。

【问题讨论】:

    标签: c debugging dump crash-dumps


    【解决方案1】:

    是否使用了相同的 exe 和相应的 pdb 导致崩溃?我的意思是你不能重新编译相同的代码并使用 pdb 和 exe。您需要有导致崩溃的 exe 及其相应的 pdb

    【讨论】:

    • 是的,所有二进制文件及其对应的 PDB 在两台机器上都是相同的。另一个观察结果是,当我尝试在 Windows x64 2003 机器上调试相同的转储文件时,调用堆栈甚至不会有任何条目,除了 2 或 3 个条目。
    • 对不起,我不是 Windows 专家,我怀疑我指出了什么。也许其他人会帮助你。
    【解决方案2】:

    使用 Windows 调试工具中的 Windbg。使用 Windbg 中的!sym noisy 命令显示有关 exe 和 dll 图像的详细信息。这将向您显示它在哪里找不到正确的 pdb,并突出显示 pdb 不匹配的情况。还要检查您在两台机器上设置的符号路径是否相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-06
      相关资源
      最近更新 更多