您现在的位置: 爱51代码网 >> 范文 >> 文章正文
gdb7.7调试无法直接输出vector之类的stl容器

记得之前用7.2的时候可以正常输出的,是不是少了什么文件之类的,求解
gdb-stl-views(比较好用)
这是由Dan Marinescu编写的一些宏,用来查看gdb容器内容,支持list, vector, map, multimap, set, multiset, dequeue, stack, queue, priorityqueue , bitset, string, 以及widestring,从 http-://-sourceware-org/gdb/wiki/STLSupport?action=AttachFile&do=view&target=stl-views-1.0.3.gdb 可以下载这个文件,下载后把它放到用户目录下改名为.gdbinit。之后再进入 gdb就可以用以下这些命令查看容器内容了:

pvector, plist, pmap, pset, pdequeue, pstack, pqueue, ppqueue, pbitset, pstring, pwstring

用help可以查看命令的帮助,比如help pvector。这个方法可以支持广泛的gdb 版本,据说是GDB 4.3+都可以。

需要注意的一点是由于很多容器都是嵌套定义的,例如:

[cpp] view plaincopyprint?
01.set<string> teststr; 
02.要查看的时候操作如下: 
03.1. pset testset 
04.gdb显示 
05.Set type =  
06.    std::set<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >,std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > 
07.Use pset <variable_name> <element_type> to see the elements in the set. 
08.Set size = 1 
09.2. 根据显示,输入 
10.pset testset 'std::basic_string<char, std::char_traits<char>, std::allocator<char> >' 
11.注意变量名称后面跟的模板T的类型最好用单引号'括上 

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 最新文章 热点文章 相关文章
    TClientDataSet如何避免多人更新
    如何用delphi代码修改XML节点
    vc++ pvoid *用delphi怎么表达
    GIS用百度行政区域的经纬度直接画
    不小心卸载了.net 4 extend,vs2
    C#byte【】里的数转换成string时
    C#的session取不到值
    java如何判断一个字符串里的数字
    随机找出24个不一样的字,在把一
    java怎么实现html转为pdf
    如何用delphi代码修改XML节点
    vc++ pvoid *用delphi怎么表达
    GIS用百度行政区域的经纬度直接画
    不小心卸载了.net 4 extend,vs2
    C#byte【】里的数转换成string时
    C#的session取不到值
    java如何判断一个字符串里的数字
    随机找出24个不一样的字,在把一
    java怎么实现html转为pdf
    lotus数据列表文档个数如何实时统
    ubuntu编译binutils错误形参
    Excess session Logs Record
    fdisk 分区No free sectors 
    linux那么多命令请问要掌握到
    linux文件锁代码
    linux内核定时器加载就死机
    linux下WORD密码输入错误三次
    linux子进程中如何读取某个全
    多个.o文件如何只链接不编译
    bash gcc command not found
     



    设为首页 | 加入收藏 | 网站地图 | 友情链接 |