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

Dav*_*yan 12 c++ linux debugging gdb

我有一个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).谢谢

Edd*_*onk 6

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

(gdb) call dump(m)
Run Code Online (Sandbox Code Playgroud)

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

我很好奇GDB助手宏.


def*_*ode 6

最新的gdb具有python支持,因此可以轻松编写一个函数来打印出任何stl结构的内容.但是,您必须学习API并编写脚本.幸运的是,gcc 4.5将附带所需的python脚本,以使gdb能够智能地处理stl数据结构.

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