使用linux的GDB打印STL(vector,map,set..................)

本文转自:https://www.cnblogs.com/silentNight/p/5466418.html

在linux用gdb或者cgdb计较不爽的地方是无法打印STL的东西,所有啊去网上找了找解决方案https://www.douban.com/note/182826844/?qq-pf-to=pcqq.c2c

本帖把怎么配置这个东西写出了,万一以后忘了,可以回头找找。

首先是下载gdb文件 https://sourceware.org/gdb/wiki/STLSupport    ------》找到网页里面的

 然后点击进去下载stl_views_1.0.3.gdb

接下来把这个东西当到linux下,位置随便放,我放到了我的用户目录下

然后写一个小程序测试一下,

 

接着gdb test 进入调试模式,然后加载刚才的stl_views_1.0.3.gdb

接着就可以看看pmap的命令了

pmap variable------------>打印variable这个map的定义和map里面的个数

pmap variable int  int(就是单纯的两个int) ------------>打印pmap的元素和map的个数

pmap variable int int 20------------>打印索引是20的map的值 和map的个数

pmap variable int int 20 200------->打印索引是20 值是200的map值和map的个数

 

1次配置文件,永久使用

使用GDB的"p variable-name"查看STL容器类,只会显示该容器的一些信息,并不能很友好的显示该容器的内容。使用stl-views.gdb这个脚本可以很好地解决这一问题。下载stl-veiws.gdb文件,将其放到~/目录下,直接将其改名为~/.gdbinit,或者在你已有的.gdbinit文件中用source ~/.stl-views.gdb命令将其包含。这样你就可以用下面的命令显示STL容器类了。
引用博客:https://blog.youkuaiyun.com/weiwangchao_/article/details/44804679

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值