gpt4 book ai didi

c++ - 从未捕获的异常中获取堆栈跟踪?

转载 作者:可可西里 更新时间:2023-11-01 13:52:58 26 4
gpt4 key购买 nike

我意识到这将是特定于平台的:是否有任何方法可以从未捕获的 C++ 异常中获取堆栈跟踪,但从抛出异常的那一点开始?

我有一个 Windows 结构化异常处理程序来捕获访问冲突等,并生成一个小型转储。但是,如果由于未捕获的 C++ 异常而终止,当然不会调用它,因此没有故障转储。

我目前正在寻找 Windows 解决方案(无论多么肮脏!),但如果可能的话,我想了解其他平台。

谢谢。

最佳答案

我们使用来自该站点的信息在上一本书中为未处理的异常实现了 MiniDumps:

http://beefchunk.com/documentation/sys-programming/os-win32/debug/www.debuginfo.com/articles/effminidumps.html

要捕获 Windows 上未处理的异常,请查看:

SetUnhandledExceptionFilter(http://msdn.microsoft.com/en-us/library/ms680634%28VS.85%29.aspx)。

作为助手,我们花了很多时间试验不同级别的小型转储,直到我们确定了一个。这被证明在现实世界的崩溃中没有实际用处,因为我们不知道在实现小型转储时它们会是什么。它是特定于应用程序的,也是特定于崩溃的,所以我的建议是尽早添加小型转储处理程序,它会随着项目和 QA 的增长而增长,并且在某个时候它会成为救命稻草(希望在现实世界中出现)也是)。

关于c++ - 从未捕获的异常中获取堆栈跟踪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1796225/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com