由于* system *二进制文件不匹配/丢失,导致崩溃转储中的调用堆栈无效? [英] Invalid call stack in crash dump due to mismatched/missing *system* binary file?

查看:139
本文介绍了由于* system *二进制文件不匹配/丢失,导致崩溃转储中的调用堆栈无效?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我在Visual Studio 2005中打开Windows故障转储时,得到了这个调用堆栈:

Got this callstack when I open a Windows crash dump in Visual Studio 2005:

>   myprog.exe!app_crash::CommonUnhandledExceptionFilter(_EXCEPTION_POINTERS * pExceptionInfo=0x0ef4f318)  Line 41  C++
    pdm.dll!513fb8e2()  
    [Frames below may be incorrect and/or missing, no symbols loaded for pdm.dll]   
    kernel32.dll!_UnhandledExceptionFilter@4()  + 0x1c7 bytes   
    ...

查看模块加载信息:

...
'DumpFM-V235_76_1_0-20110412-153403-3612-484.dmp': Loaded '*C:\Program Files\Common Files\Microsoft Shared\VS7Debug\pdm.dll', No matching binary found.
...

我们看到此二进制文件甚至都没有加载,因为用于分析转储的计算机与产生转储的计算机是不同的计算机.

We see that this binary was not even loaded, because the machine used to analyze the dump is a different machine than the machine that produced the dump.

我目前无法访问另一台计算机-我可以以某种方式修复该堆栈,还是在该确切路径位置始终需要确切的二进制文件?

I don't have access to this other machine at the moment -- can I somehow get this stack fixed, or will I always need the exact binary at this exact path location?

推荐答案

如果您绝对要在Visual Studio中调试此转储,则可以避免从生成转储的计算机上复制系统DLL. .dmp文件所在的文件夹.这样,它将加载这些二进制文件,而不是尝试在调试系统中的二进制文件中查找它们与原始系统中的二进制文件(可能包含相同模块的不同版本).

If you absolutely want to debug this dump in Visual Studio, then you can get away with copying the system DLLs from the machine that produced the dump to the same folder where your .dmp file is. That way, it will load those binaries instead of trying to find them in the same path on the debugging system as they were on the original system (which probably will contain different versions of the same modules).

尽管Naveen指出,在WinDBG中加载转储时,您将不会遇到此问题(出于我尚未理解的原因).这就是为什么当我从客户端获得转储时,总是在WinDBG中对其进行分析.

As Naveen pointer out though, you won't have this problem when loading the dump in WinDBG (for reasons I have yet to understand). That is why when I get a dump from clients, I always analyze them in WinDBG.

如果您需要有关使用WinDBG进行故障转储分析的帮助,请访问以下网站,有关此主题的信息充斥: http ://www.dumpanalysis.org/.

If you need help on using WinDBG for crash dump analysis, the following Web site is full of info on the subject: http://www.dumpanalysis.org/.

这篇关于由于* system *二进制文件不匹配/丢失,导致崩溃转储中的调用堆栈无效?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆