Windows:打开小型转储时无法看到调用堆栈

发布于 2024-12-17 15:12:56 字数 527 浏览 0 评论 0原文

我使用带有 MiniDumpNormal 参数的 MiniDumpWriteDump 来转储 SEH 异常处理程序中的调用堆栈。当我在 VS 中打开转储时,我看不到调用堆栈。两天前,当我开始尝试转储时,我确实看到了相同的代码。我改变了一些东西,但我不明白是什么。这是一个调试版本(我什至看到了发布版本的调用堆栈)。如果我将断点放在 MiniDumpWriteDump 调用处,我可以在调试器中很好地看到调用堆栈。如果转储不是从异常处理程序中写入的,我可以在 VS 中打开转储后看到调用堆栈。 堆栈不显示的原因是什么?

这就是我的转储写入代码的样子

PS我使用/EHa进行编译。还尝试完全禁用 C++ 异常(两天前确实有效)。当然,.pdb 文件生成得很好。

PPS 这就是我所说的“调用堆栈没有显示”的意思。

在此处输入图像描述

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

紫南 2024-12-24 15:12:56

在某些情况下,调试器无法重建整个堆栈。
在这种情况下,您需要使用 WinDbg 打开转储并手动重建堆栈。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文