3

I'm using MiniDumpWriteDump with MiniDumpNormal parameter to dump call stack in SEH exception handler. When I open the dump in VS, I can't see the callstack. I did see it with the same code two days ago when I started experimenting with dumping. I've changed something, and I don't understand what. This is a debug build (and I even saw call stack from a release build all right). I can see call stack fine in the debugger, if I put the breakpoint at MiniDumpWriteDump call. I can see call stack after opening the dump in VS, if the dump wasn't written from within the exception handler. What can be the cause of stack not showing up?

That's what my dump-writing code looks like

P. S. I compile with /EHa. Also tried disabling C++ exceptions at all (that definitely worked two days ago). And, of course, .pdb files are generated fine.

P. P. S. And this is what I mean by saying "call stack is not showing up".

enter image description here

Community
  • 1
  • 1
Violet Giraffe
  • 32,368
  • 48
  • 194
  • 335
  • Do the .pdb files in the visual studio build directory match the build of the .exe that generated the minidump? – obmarg Nov 24 '11 at 14:55
  • @obmarg: Of course! I simply generate exception in my code and open the dump immediately, right here, on my dev machine. And please note, that call stack is displayed all right if I call `MiniDumpWriteDump` somewhere in the code and not in the exception handler! – Violet Giraffe Nov 24 '11 at 14:58
  • "You've changed something." What? System configuration? Program? Do you have previous versions archived in a VCS? Can you find a version that works? – zvrba Nov 24 '11 at 21:31
  • @zvrba: I have only played with project settings, and those are not versioned. There are numerous changes to the code, but all - to the code inside `__try .. __except`. And the last answer is no, otherwise I wouldn't ask here. – Violet Giraffe Nov 24 '11 at 21:34
  • 2
    You can try to open your dump with WinDbg. This is much more robust tool for dumps. At least it can give you some additonal info. – Eugene Nov 26 '11 at 10:15

1 Answers1

2

In some circumstances, the debugger is not able to reconstruct the whole stack. In this case, you need to open the dump with WinDbg and reconstruct the stack manually.

Kobbe
  • 809
  • 5
  • 16
Thierry Franzetti
  • 1,763
  • 12
  • 12
  • 1
    There's also tools which can automate the callstack extraction (and crash diagnosis) without resorting to using WinDbg. I've written a [short summary and how-to guide on the various options](http://stackoverflow.com/a/33394299/434413) in this answer. The DebugDiag tool from Microsoft is a good choice here. – Chris Kline Nov 09 '15 at 14:25