C ++相当于Python的traceback库

时间:2011-03-04 00:21:41

标签: c++ python traceback

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

Python的traceback库就是一个例子。

C ++与Python的回溯库等价的是什么?

5 个答案:

答案 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