如何在Linux中的GDB / Nemiver中显示C ++ STL容器

时间:2012-07-21 15:05:35

标签: c++ linux stl gdb

我正在使用Linux(Ubuntu 11.10)和gdb 7.3 / Nemiver 0.8.2 我想显示STL容器的内容,但到目前为止我还没有真的成功。

是否有其他可视化调试器(更好地基于gdb)我应该使用它来显示STL容器变量?
我正在寻找一种支持容器组合的解决方案(即std::map<int, std::vector< std::pair< ... > > >)。

干杯

2 个答案:

答案 0 :(得分:0)

新版本的GDB支持Python的漂亮打印API。这使应用程序可以提供Python代码来自定义对象显示的某些方面。此代码旨在与CLI(gdb提示符下的“print”)和MI(GUI使用或至少应该使用的接口)一起使用。

新版本的GCC为libstdc ++中的所有重要数据结构提供了Python漂亮的打印机。

最后一步是获得一个足够新的nemiver版本。我认为0.9.2有这个功能。

许多发行版都提供gdb和gcc设置,以便在程序使用libstdc ++时自动激活漂亮的打印机。所以,也许只是升级nemiver就足够了。否则,网上有很多关于如何设置它的文档。

答案 1 :(得分:0)

下载以下文件 -

https://github.com/jgarvin/joe-etc/blob/master/gdb/stl-views-1.0.3.gdb

来自GDB -

# source <PATH>/stl-views-1.0.3.gdb

# pmap <map-object> <key-type> <value-type>

...