回溯 - 隐藏标准库并提升呼叫

The*_*ere 5 c++ debugging gdb

我正在寻找gdb中的回溯,它看起来非常混乱,因为所有调用都进入了标准库和boost.例如.我看到boost::bindstd::allocator在调用堆栈上,以及其他几个类似的调用标准库或Boost.

我想我会发现回溯只显示我程序中明确定义的函数.更好的是,如果我可以快速配置backtrace命令来显示或隐藏stdboost调用我需要它们,这将更有帮助.

任何想法如何完全隐藏boost调用堆栈或配置回溯以打开和关闭升压记录?

Tom*_*mey 3

没有内置的方法可以做到这一点。

不过,可以通过编写一个 Python“帧过滤器”来删除您不喜欢看到的帧来完成。这并不是特别难做到,但需要使用 gdb Python API 编写一些 Python 代码。

  • 这是一个对输出进行着色的帧过滤器。重要的一点是 https://github.com/tromey/gdb-helpers/blob/master/gdbhelpers/colorize.py#L116 - 这是实现帧过滤器的类。你的可能会丢弃你不关心的帧。 (2认同)