C++中等同于Python的traceback库

8 投票
5 回答
2241 浏览
提问于 2025-04-16 12:58

我需要一些调试库或工具,来追踪输出到标准输出(stdout)的堆栈信息。

Python有一个叫做traceback的库,可以用作例子。

那么,C++中有没有类似于Python的traceback库的东西呢?

5 个回答

1

现在有了一个叫做 cpp-traceback 的工具,它可以让C++的错误信息看起来像Python那样,简单明了。

1

试试谷歌核心转储工具,当你需要的时候,它会给你一个核心转储。

2

这跟你使用的平台有关,也和你编译代码的方式有关系。如果你用gcc编译代码时加上了-fomit-frame-pointer这个选项,那么想要得到有用的错误追踪信息就会变得很困难,通常需要一些技巧。如果你使用的库也用了这个选项,那你会遇到更多问题——这个选项通常用于那些经过高度优化的库,比如nVidia的OpenGL库。

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

这些代码包括了在使用gcc时如何利用帧指针进行错误追踪,以及在没有帧指针时如何进行启发式错误追踪;虽然这样可能会在追踪中出现一些无关的条目,但对于获取崩溃报告的错误追踪来说,这比完全失去追踪信息要好得多。

在这些目录中还有其他相关的代码,你可能需要查看一下,以便更好地利用这些代码(比如符号查找、信号处理);这些链接是一个很好的起点。

撰写回答