我意识到这将是特定于平台的:有没有办法从未捕获的 C++ 异常中获取堆栈跟踪,但从引发异常的点开始?
我有一个 Windows 结构化异常处理程序来捕获访问冲突等并生成小型转储。但当然,如果由于未捕获的 C++ 异常而终止,则不会调用该方法,因此不存在故障转储。
我目前正在寻找 Windows 解决方案(无论多么肮脏!),但如果可能的话,希望了解其他平台。
Thanks.
我们使用来自此站点的信息在上一个标题中针对未处理的异常实现了 MiniDumps:
http://beefchunk.com/documentation/sys-programming/os-win32/debug/www.debuginfo.com/articles/effminidumps.html http://www.debuginfo.com/articles/effminidumps.html
要捕获 Windows 上未处理的异常,请查看:
设置未处理异常过滤器(http://msdn.microsoft.com/en-us/library/ms680634%28VS.85%29.aspx http://msdn.microsoft.com/en-us/library/ms680634%28VS.85%29.aspx).
作为一名助手,我们花了很多时间尝试不同级别的小型转储,直到我们确定了一个。事实证明,这在现实世界的崩溃中没有真正的用处,因为我们不知道在实施小型转储时它们会是什么。它是特定于应用程序的,也是特定于崩溃的,所以我的建议是尽早添加小型转储处理程序,它将随着项目和质量检查而增长,并且在某个时候它将成为救星(希望在现实世界中)也)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)