Search code examples
c++windowsvisual-studio-2005crash-dumpsminidump

Invalid call stack in crash dump due to mismatched/missing *system* binary file?


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   
    ...

Looking at the module load info:

...
'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?


Solution

  • 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).

    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.

    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/.