打印以记录核心转储文件堆栈,C++ 在 Windows 上?

问题描述 投票:0回答:3

当我的进程崩溃时,如何打印以记录核心转储文件堆栈(C++ over Windows)? 我知道在 Unix 中有一种方法可以使用一些信号处理程序来做到这一点,但我自己从未这样做过。 我如何在 Windows 中执行此操作(最好不要使用 ACE)?

c++ windows signals coredump
3个回答
2
投票

核心转储的 Windows 等效项称为小型转储,您可以使用 MiniDumpWriteDump 编写一个小型转储。这里有一篇关于 codeproject 的文章:http://www.codeproject.com/KB/debug/postmortemdebug_standalone1.aspx


0
投票

您可以设置自己的顶级异常处理程序并使用 dbghelp 库遍历堆栈以获取调用堆栈。您还可以通过this方式生成应用程序故障转储。


0
投票

如果您正在寻找 Stack Walker,请查看由 Jochen Kalmbach 创建的 this。运行时,它会让您以您喜欢的任何方式记录堆栈跟踪。然而,常见的方法是要求 Windows 创建转储(完整转储或迷你转储)。

© www.soinside.com 2019 - 2024. All rights reserved.