用于分析故障转储的 WinDbg 在本地电脑上不起作用

WinDbg to analyze the crash dump doesn't work on the local pc

本文关键字:电脑 不起作用 WinDbg 故障 转储 用于      更新时间:2023-10-16

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

我故意让应用程序崩溃,看看它的迷你转储文件是否正确创建和工作,它是否能与WinDbg一起工作。

我是怎么做到的。

0:000> .symfix c:symbols
0:000> .sympath+ C:Projects*********x64Release
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,而不删除可从笔记本电脑访问的私有符号,我还注意到您似乎已经将一些符号缓存到c:symbols中,这些符号是相同的吗?

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

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

还有,你用的是什么版本的风衣?不同的版本经常会有错误,所以你可能想检查一下你的笔记本电脑和服务器上运行的版本是一样的。