GDB 打印设置

使用gdb,print查看变量值时,发现如果值过长的话,会出现省略号来表示多余的内容。

我们可以使用

 set print elements 0 

来关闭掉显示长度限制。再使用print 就可以完全显示变量内容了。

gdb print提供了许多选项来设置print。 一般情况下使用默认的设置没有太大问题。如果是有特殊需求还是需要特殊设置。

help set print  显示所有print提供设置选项。

show print  显示当前print的设置

对于其中一些选项,记录如下:

set print address on/off   打开(默认)/关闭打印地址

set print array on/off       打开/关闭(默认) 更好的显示数组,感觉没什么用,对于数组的显示,本选项开启后,会换行打印,一个元素一行,默认关闭情况下就是打印在一行。

set print array-indexes on/off  打开/关闭(默认) 显示数组index。

set print frame-arguments  all/scalars(默认)/none 在打印堆栈帧(bt)的时候显示参数的方式,

all是全部打印,

scalars 只打印简单类型,数组,结构体,联合等等就用省略号显示。

none参数全部用省略号显示。

set print interior-events on/off 这个是多进程调试的信息,i inferiors 查看。

set print null-stop on/off(默认) 是否使用0终止字符串。 在打印短字符串的时候有用(不会显示很多\0)。

set print object on/off(默认) 如果打开打印其真实的类型,而不是声明的类型。

比如: B继承于A, A* lpb=new B;  这里的lpb实际上是B的对象, 如果本选项关闭那么将打印声明的类型A*,如果本选项打开则会打印 B*

set print pretty on/off(默认) 是否以更换行缩进的方式打印结构体,或者类。

比如: 关闭的情况下打印 $1={ a=1,b=1 }

打开的情况下将会打印

$2={

   a=1,

  b=1,

}

set print repeats  n 设置数组中重复元素的上限值,如果超过该值(默认为10),将会以<repeats x times>来显示,

如果设置为2那么{1,1,1,2,2,2,3} 将会打印{ 1<repeats 3 times>,2<repeats 3 times>,3 } ,设置为0将会全部打印。

set print sevenbit-strings on/off(默认) 是否显示8bit的字符,对于大于0x7F(ASCII)的编码以/nnn来表示。

set print static-member on(默认)/off 是否打印静态数据成员。

set print thread-events on(默认)/off 当程序启动或者线程退出时打印信息。

set print union on(默认)/off 是否打印联合, 如果否以{...}替代

set print elements n  默认为200,如果超过这个值就会以...替代。 设置为0,则会全部显示。


在print中还有许多选项,许多感觉只有在非常特殊的情况下才会使用到,就不在提及。

参考:

http://www.delorie.com/gnu/docs/gdb/gdb_58.html


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值