gdb打印stl,该如何处理

gdb打印stl
大家好,我尝试在gdb打印stl。通过google,查到文件:
http://www.yolinux.com/TUTORIALS/src/dbinit_stl_views-1.03.txt

我创建一个文件:.gdbinit在我的home目录下,把上面的链接的内容拷贝进去,调试这样的代码:

        std::map<char,int> first;

        first.insert(std::pair<char,int>('a',10));
        first.insert(std::pair<char,int>('b',20));
        first.insert(std::pair<char,int>('c',25));



打印map的命令应该是: pmap first char int 
打印出来的结果是:
gdb打印stl,该如何处理

元素的值有误。是不是我遗漏了什么操作呢?

而对于代码:


        std::map<int,char> mm;

        mm.insert(std::pair<int,char>(10,'k'));
        mm.insert(std::pair<int,char>(20,'z'));


却能够正常打印:
(gdb) pmap mm int char
elem[0].left: $1 = 10
elem[0].right: $2 = 107 'k'
elem[1].left: $3 = 20
elem[1].right: $4 = 122 'z'
Map size = 2
这是为什么呢?谢谢!
------解决思路----------------------
会是对于char处理的有些问题吗??上边儿的那个如果敲pmap first int int结果就是对的@_@
------解决思路----------------------
不要依赖调试工具的输出;要依赖自己写一小段代码输出。