当我的进程崩溃时,如何通过 Windows 打印以记录核心转储文件堆栈、C++?我知道在 Unix 中有一种方法可以使用一些信号处理程序来做到这一点,但我自己从来没有这样做过。我如何在 Windows 中做到这一点(不喜欢使用 ACE)?
谢谢。
Windows 等效的核心转储称为 Minidump,您可以使用MiniDumpWriteDump编写一个。这里有一篇关于 codeproject 的文章:http: //www.codeproject.com/KB/debug/postmortemdebug_standalone1.aspx
您可以设置自己的顶级异常处理程序并使用 dbghelp 库遍历堆栈以获取调用堆栈。您也可以通过这种方式生成应用程序故障转储。
如果您正在寻找堆栈步行器,请查看由 Jochen Kalmbach 创建的这个。运行时,它将让您以任何您喜欢的方式记录堆栈跟踪。然而,常见的方法是让 Windows 创建一个转储(完整的或迷你的)。