【问题标题】:WinDbg to analyze the crash dump doesn't work on the local pcWinDbg 分析故障转储在本地 pc 上不起作用
【发布时间】:2012-03-28 02:54:57
【问题描述】:

我开发了一个小型 MFC 应用程序,它将在服务器上 24 小时运行。 (Windows Server 2008 R2,x64)

我故意让应用程序崩溃,以查看它的 minidump 文件是否正确创建和工作,它是否适用于 WinDbg。

我是这样做的。

0:000> .symfix c:\symbols
0:000> .sympath+ C:\Projects\*********\x64\Release
0:000> .reload
0:000> !analyze -v 
-> Works! I can see full call stack and the line where the error occured!

但是,当我在本地笔记本电脑(Windows XP、x86)上做同样的事情时 我在调用堆栈文本中看到的只是非常基本的信息,如下所示。 (它也没有显示我应该看哪一行来调试。)

STACK_TEXT:  
0012fd60 0040695c 00000004 dd0fbe7e 00d67d10 **************!CWnd::RunModalLoop+0xf7
0012fdac 004010e0 dd0fbcce 0056bae8 0056bae8 **************!CDialog::DoModal+0x130
0012ff1c 0050e492 00380032 00000000 7ffde000 **************!**************::InitInstance+0xa0
0012ff30 004f7bd7 00400000 00000000 00020934 **************!AfxWinMain+0x48
0012ffc0 7c7e7077 00380032 002d0033 7ffde000 **************!__tmainCRTStartup+0x11a
0012fff0 00000000 004f7c2a 00000000 00000000 kernel32!BaseProcessStart+0x23
-> Meaningless information in this case b/c the error occurs in OnBnClicked function.

我花了几个小时在谷歌上搜索,但在寻找这个问题的答案时感到迷茫。 为什么它不能只在我的笔记本电脑上工作?

我应该检查什么?我错过了什么?任何想法将不胜感激。 提前致谢。

【问题讨论】:

  • 您是否必须将 PDB 文件放在其他 PC 上才能获取所有信息?您是否在 PC 上重新编译了程序,覆盖了 EXE 中以绝对路径引用的 PDB 文件?
  • 谢谢。我同意这一定是因为 PDB 文件。但问题是我在 64 位和 32 位上做了同样的事情,它只适用于 64 位。我在下面添加了一条评论...任何想法将不胜感激。

标签: c++ mfc windbg dump minidump


【解决方案1】:

您将需要相同的 pdb,而无需从您的笔记本电脑中删除私有符号,以便获得具有正确源代码行信息的合理调用堆栈,我还注意到您似乎已将一些符号缓存到 c:\symbols,这些符号是否相同解决 windows 符号?

检查您的 Visual c++ 设置以确保您没有从 pdb 中剥离私有符号,当您尝试设置断点、搜索符号或执行崩溃分析时,它很可能会通过声明它是 unable to verify the checksum 来警告您或类似的消息。

我还注意到您在 64 位服务器上运行您的应用程序,然后在 32 位笔记本电脑上运行,您运行的是正确版本的 WinDbg 是我的下一个问题,有 32 位和 64 位版本。

还有你用的是什么版本的windbg?各种版本经常存在错误,因此您可能需要检查您在笔记本电脑上运行的版本是否与在服务器上运行的版本相同。

【讨论】:

  • 感谢您的回答。我尽可能多地尝试并找到了一些东西。在 32 位计算机上创建的所有转储文件都不能正常工作,但在 x64 上工作正常。经过很长时间试图弄清楚这一点,我还注​​意到我的 Visual Studio 2010 在 32 位上编译时使用了这个名为“analyze-”的选项,而在 64 位上没有包含分析或分析选项。这就是我能提供的全部,尽管我仍然会努力避免被解雇......
  • 我终于找到了原因。如果有人在这里问我,我会写下我是如何解决这个问题的。我最终花了一整天的时间。 ...
  • @YayCplusplus 很高兴听到您解决了您的问题,请发布答案,让 stackoverflow 社区受益,干杯。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-12
  • 2014-03-20
  • 2020-10-08
  • 2010-10-18
  • 1970-01-01
相关资源
最近更新 更多