C++相当于Python的traceback库

pro*_*eek 8 c++ python traceback

我需要一些调试库/工具来追溯打印到stdout的堆栈信息.

Python的traceback库就是一个例子.

什么是C++相当于Python的追溯库?

Gle*_*ard 2

这是特定于平台的,并且还取决于您编译代码的方式。如果您使用 gcc 编译代码,-fomit-frame-pointer则很难获得有用的回溯,通常需要启发式方法。如果您使用任何使用该标志的库,您也会遇到问题 - 它通常用于高度优化的库(例如 nVidia 的 OpenGL 库)。

这不是一个独立的解决方案,因为它是更大引擎的一部分,但代码很有帮助:

这包括在可用时使用 gcc 进行帧指针回溯,以及在不可用时使用启发式回溯;这可能会在跟踪中产生虚假条目,但对于获取崩溃报告的回溯,这比完全丢失跟踪要好得多。

在这些目录中还有其他相关代码,您需要查看以利用该代码(符号查找、信号处理);这些链接是一个很好的起点。