这是特定于平台的,并且还取决于您编译代码的方式。如果您使用 gcc 编译代码,-fomit-frame-pointer则很难获得有用的回溯,通常需要启发式方法。如果您使用任何使用该标志的库,您也会遇到问题 - 它通常用于高度优化的库(例如 nVidia 的 OpenGL 库)。
这不是一个独立的解决方案,因为它是更大引擎的一部分,但代码很有帮助:
这包括在可用时使用 gcc 进行帧指针回溯,以及在不可用时使用启发式回溯;这可能会在跟踪中产生虚假条目,但对于获取崩溃报告的回溯,这比完全丢失跟踪要好得多。
在这些目录中还有其他相关代码,您需要查看以利用该代码(符号查找、信号处理);这些链接是一个很好的起点。