C ++相当于Python的traceback库

我需要一些调试库/工具来追溯打印到stdout的堆栈信息。 Python的traceback库就是一个例子。 什么是C ++相当于Python的追溯库?     
已邀请:
这是特定于平台的,也取决于您编写代码的方式。如果使用
-fomit-frame-pointer
使用gcc编译代码,则很难获得有用的回溯,通常需要启发式。如果您正在使用任何使用该标志的库,您也会遇到问题 - 它通常用于高度优化的库(例如,nVidia的OpenGL库)。 这不是一个独立的解决方案,因为它是更大引擎的一部分,但代码很有用: https://svn.stepmania.com/svn/trunk/stepmania/src/archutils/Unix/Backtrace.cpp(Linux,OSXX) https://svn.stepmania.com/svn/trunk/stepmania/src/archutils/Win32/Crash.cpp(Win32的CrashHandler :: do_backtrace) https://svn.stepmania.com/svn/trunk/stepmania/src/archutils/Darwin/DarwinThreadHelpers.cpp(OSX) 这包括使用带有gcc的框架指针(如果可用)进行回溯,而不使用时进行启发式回溯;这可能会在跟踪中产生虚假条目,但是为了获得崩溃报告的回溯,它比完全丢失跟踪要好得多。 在那些您想要查看的目录中还有其他相关代码来使用该代码(符号查找,信号处理);这些链接是一个很好的起点。     
尝试使用谷歌核心转储程序,它会在您需要时为您提供核心转储。     
现在有cpp-traceback,它正是C ++的Python风格的回溯。     
我过去曾在libunwind取得过成功。我知道它适用于linux,但不确定Windows是如何的,尽管它声称是可移植的。     
如果您想在崩溃的情况下获得“堆栈跟踪”,请尝试使用'google breakpad'     

要回复问题请先登录注册