我正在使用 Linux (Ubuntu 11.10) 和 gdb 7.3 / Nemiver 0.8.2。
我想显示 STL 容器的内容,但到目前为止我还没有真正成功。
是否有任何其他可视化调试器(基于 gdb 更好)我应该用来显示 STL 容器变量?
我正在寻找一种支持容器组合(即std::map<int, std::vector< std::pair< ... > > >
)的解决方案。
干杯
足够新的 GDB 版本支持来自 Python 的漂亮打印 API。这允许应用程序提供 Python 代码来自定义对象显示的某些方面。此代码旨在与 CLI(gdb 提示符下的“打印”)和 MI(GUI 使用或至少应该使用的界面)一起使用。
足够新的 GCC 版本为 libstdc++ 中的所有重要数据结构提供 Python 漂亮打印机。
最后一步是获得足够新的 nemiver 版本。我认为 0.9.2 有这个功能。
许多发行版提供 gdb 和 gcc 设置,以便在您的程序使用 libstdc++ 时自动激活漂亮的打印机。所以,也许仅仅升级 nemiver 对你来说就足够了。否则,网上有很多关于如何设置的文档。
下载以下文件 -
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>
...