I have a client that receives a 100% reproducible failure, which I cannot reproduce in my program compiled in Visual Studio 2005. I sent them a debug build of my program and saved all the PDB and DLL files. They sent me the minidump file, but when I open it, I get:
"Unhandled exception at 0x00000000 in MiniDump.dmp: 0xC0000005: location where access violation 0x00000000 was read."
Then the call stack shows only "0x00000000 ()", and the disassembler shows me a memory dump at 0x0. I set up a character server, loaded my PDB characters, etc. But I see no way to find out which of the many DLLs actually caused the transition to zero. This is a large project with many dependencies, and some of them are binaries for which I do not have the source or PDB, since I use the API as a third party.
So, how useful is this minidump? How to find out which DLL caused the crash? I have never used minidumps for debugging before, but all the tutorials I read seem to at least display the function name or something else that gives you the key to the call in the call stack. I just get one line pointing to zero.
I also tried using Depends to find out if there was any dependency on the DLL that was unresolved; however, on my three test machines with different Windows OSs, I seem to get three different sets of DLL dependencies on the OS (and still can't replicate the crash); therefore, this does not seem to be a particularly reliable method for diagnosing a problem.
What other methods are available to determine the cause of this problem? Is there a way to undo a single command to see which DLL has moved to zero?
debugging visual-c ++ visual-studio-2005 minidump
Piers
source share