分析崩溃转储的WinDbg在本地pc上不起作用

时间:2012-03-28 02:54:58

标签: c++ mfc windbg dump minidump

我开发了一个小型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.

我花了几个小时谷歌搜索,但感到失落寻找答案。 为什么它只能在我的笔记本电脑上运行?

我应该检查什么?我错过了什么?任何想法都将非常感激。 提前谢谢。

1 个答案:

答案 0 :(得分:2)

你需要从你的笔记本电脑上删除没有删除私有符号的相同pdbs才能获得具有正确源代码行信息的合理调用堆栈,同时我注意到你似乎已经缓存了一些符号c:\symbols这些符号是相同的并解决窗口符号?

检查您的visual c ++设置以确保您没有从pdbs中删除私有符号,当您尝试设置断点,搜索符号或执行崩溃分析时,它很可能会发出警告,指出它是{{1或类似的消息。

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

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