C / C ++:如何打印堆栈跟踪?

时间:2020-05-07 16:23:37

标签: c++ c gcc

当gcc / g ++遇到ICE(内部编译器错误)时,最新版本的编译器将在退出之前打印出整齐的堆栈跟踪。

问题:采用什么技术来实现? GCC是用C ++编写的,因此有些保守的修订版本,例如C ++ 03。

是否需要异常,信号或什至是调试信息的解释?是否存在主机/操作系统依赖性?

在玩自己的C / C ++代码时,我发现的全部是__builtin_return_address,它允许通过诸如addr2line这样的外部工具将代码地址打印出来,从而显示可用于显示位置的代码地址...

注意:

不幸的是,这个问题已经过早地关闭了……特别是,链接的线程无法解决以下几点:

  • GCC不使用Boost。

  • 据我所知,GCC不会使用linunwind或liblib之类的外部库。

  • GCC不一定使用glibc。例如,我可以在Linux上为主机mingw32交叉编译GCC,而堆栈跟踪也可以正常工作。

0 个答案:

没有答案