GDB调试STL中的相关容器

在老版本的GDB中(应该是7.0以前),调试STL容器还是比较麻烦的,直接print会出来一大串无用的信息



对此比较好的解决方法是使用stl-views-1.0.3.gdb,然后进入GDB,输入source stl-views-1.0.3.gdb(假设stl-views-1.0.3.gdb在你当前目录下),或者将stl-views-1.0.3.gdb拷贝到home下,改名为stl-views-1.0.3.gdbinit,GDB启动时会自动扫描.gdbinit文件,可以省去一道source的过程,之后在gdb中调试相关容器,如string:输入pstring teststr,就可以显示出调试信息。


新版本GDB(7.0之后),加入了python写的pretty print,一般来说你的GDB会自带,如果没有的话,先看你的/usr/share/gcc-4.8.5/python这个目录下是否存在,如果存在,则编写一个stlview.gdbinit文件,里面输入

python  
import sys 
sys.path.insert(0, '/usr/share/gcc-4.8.5/python')  
from libstdcxx.v6.printers import register_libstdcxx_printers  
register_libstdcxx_printers (None)  
end

然后拷贝到home下,或者启动GDB,输入source stlview.gdbinit。

如果不存在当前目录,下载方法

终端输入

svn co svn://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch/libstdc++-v3/python(需要svn工具,没有自行百度下载)

然后你会在当前目录下得到一个python文件,然后将sys.path.insert(0, '/usr/share/gcc-4.8.5/python')  这串代码中的'/usr/share/gcc-4.8.5/python'改为python文件路径,之后做法相同,如果这两种方法都还不行,建议你首先确定下你的STL版本,当前的方法好像只支持SGI STL的调试。

使用pretty printer的效果如下:

测试代码:







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值