我正在使用Linux(Ubuntu 11.10)和gdb 7.3 / Nemiver 0.8.2 我想显示STL容器的内容,但到目前为止我还没有真的成功。
是否有其他可视化调试器(更好地基于gdb)我应该使用它来显示STL容器变量?
我正在寻找一种支持容器组合的解决方案(即std::map<int, std::vector< std::pair< ... > > >
)。
干杯
答案 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>
...