答案 0 :(得分:2)
这是特定于平台的,也取决于您如何编译代码。如果使用-fomit-frame-pointer
使用gcc编译代码,则很难获得有用的回溯,通常需要启发式。如果您正在使用任何使用该标志的库,您也会遇到问题 - 它通常用于高度优化的库(例如,nVidia的OpenGL库)。
这不是一个独立的解决方案,因为它是更大引擎的一部分,但代码很有帮助:
这包括在可用时使用gcc进行框架指针的回溯,而在不可用的情况下使用启发式回溯;这可能会在跟踪中产生虚假条目,但是为了获得崩溃报告的回溯,它比完全丢失跟踪要好得多。
您希望查看这些目录中的其他相关代码以使用该代码(符号查找,信号处理);这些链接是一个很好的起点。
答案 1 :(得分:1)
尝试google core dumper,它会在您需要时为您提供核心转储。
答案 2 :(得分:1)
现在有cpp-traceback,它正是C ++的Python式回溯。
答案 3 :(得分:0)
我过去曾在libunwind取得过成功。我知道它适用于linux,但不确定Windows是什么,虽然它声称是可移植的。
答案 4 :(得分:0)
如果您想在发生崩溃时获得“堆栈跟踪”,请尝试“google breakpad”