开发者

Missing call stack frames when debugging a crash dump with Visual Studio

I'm trying to debug an access violation error in some native code, and I have the mini-dump for the crash.

When opening the crash dump with visual studio, here's what happens:

If VS can't find the symbols for my problematic native DLL, it shows the correct call stack frames (including the location in my code the error is generated from). But I can't see the sources, of course.

If VS can find the symbols (I put them in the correct location and the output window says that the symbols for MyProblematic.dll 开发者_JAVA百科were loaded), I only see one frame in the call stack - which is msvcr90.dll. Obviously that doesn't help me much.

Can anyone explain this?

Thanks


Well, it is easy to explain. If the stack frame is corrupted then neither the minidump taker nor the debugger can walk the stack to show you more. Easy to do, for example just strcpy() and overflow the end of the stack buffer so that the saved EBP and return address gets stomped. And, yes, almost impossible to diagnose, no matter how good the quality of the minidump. Good luck with it.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜