4

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

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

干杯

4

2 回答 2

0

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

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

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

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

于 2013-05-24T17:27:23.693 回答
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>

...

于 2013-09-22T07:23:46.113 回答