gdb打印stl

chennut0802 2015-01-17 11:45:43
大家好,我尝试在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
打印出来的结果是:


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

而对于代码:


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
这是为什么呢?谢谢!
...全文
295 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2015-01-19
  • 打赏
  • 举报
回复
不要依赖调试工具的输出;要依赖自己写一小段代码输出。
季曲 2015-01-19
  • 打赏
  • 举报
回复
会是对于char处理的有些问题吗??上边儿的那个如果敲pmap first int int结果就是对的@_@

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧