如何在gdb中打印std :: map值

我有一个std :: map <std :: string,std :: string> cont;

我想在gdb中看到cont [“some_key”]。 当我尝试

p cont [“some_ket”]

我得到这个消息:你试图传递给operator []的一个参数不能被转换成函数想要的。

我正在使用GNU gdb Red Hat Linux(6.3.0.0-1.162.el4rh)。 谢谢

最新的gdb有python支持,所以可以很容易地写出一个函数来打印出任何stl结构的内容。 但是,你必须学习API并编写脚本。 幸运的是,gcc 4.5将附带所需的python脚本来让gdb智能地处理stl数据结构。

编辑:你不必等待GCC 4.5(顺便说一下,已经发布),你可以从SVN抓取代码 。

您可以编写自己的转储函数并调用它们:

(gdb) call dump(m) 

看到这个线程: http : //www.mail-archive.com/help-gplusplus@gnu.org/msg02109.html

我很好奇GDB的辅助宏。

Gdb不理解C ++运算符重载。