Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1744311
  • 博文数量: 263
  • 博客积分: 1218
  • 博客等级: 少尉
  • 技术积分: 2862
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-19 02:33
文章分类

全部博文(263)

文章存档

2020年(12)

2019年(2)

2018年(10)

2016年(1)

2015年(20)

2014年(115)

2013年(46)

2012年(37)

2011年(20)

分类: C/C++

2015-07-30 10:56:12

gdb打印完整字符串内容  

  在使用gdb进行程序调试时,经常遇到打印字符串内容的情况。但是很遗憾,缺省情况下,当待显示的字符串比较长时,gdb只会显示部分字符串内容,给程序的调试带来不便。
        通过如下命令可以实现gdb中打印完整字符串内容:
        (gdb) set print element 0



Here is an example. If a program says

int *array = (int *) malloc (len * sizeof (int));

you can print the contents of array with
p *array@len



文章2:  通常在gdb调试时要打印出一些字符串的内容,通过
p str@str_len  打印字符串时,通常有长度的限制,我测试linux机器上默认为200个,但实际输出的长度str_len可能大于该值。
结果不能够完全输出,而进行了省略,通过命令set print element 0就可以了。
eg:
p *prefix@req_line_sz 
$25="GET/web/0/http/0/%E7%8E%B0%E5%9C%A8%E6%B3%A8%E5%86%8C%E4%B9%B0%E4%B8%80%E5%BE%97%E5%85%AD%EF%BC%8C%E5%8D%B3%E8%B4%AD%E4%B9%B0%20%E4%B8%87%E7%BD%91.%E4%B8%AD%E5%9B%BD,%E5%8F%AF%E5%BE%97%E5%88%B0%20%E4"...
(gdb) set print element 0
(gdb) set print element 0
 (gdb) p *prefix@req_line_sz 
$26="GET/web/0/http/0/%E7%8E%B0%E5%9C%A8%E6%B3%A8%E5%86%8C%E4%B9%B0%E4%B8%80%E5%BE%97%E5%85%AD%EF%BC%8C%E5%8D%B3%E8%B4%AD%E4%B9%B0%20%E4%B8%87%E7%BD%91.%E4%B8%AD%E5%9B%BD,%E5%8F%AF%E5%BE%97%E5%88%B0%20%E4%B8%87%E7%BD%91.CN;%E8%90%AC%E7%B6%B2.CN;%E4%B8%87%E7%BD%91.%E4%B8%AD%E5%9B%BD;%E8%90%AC%E7%B6%B2.%E4%B8%AD%E5%9B%BD;%E4%B8%87%E7%BD%91.%E4%B8%AD%E5%9C%8B;%E8%90%AC%E7%B6%B2.%E4%B8%AD%E5%9C%8B HTTP/1.1\r\n"
第二次 就输出全部了。 


转:http://blog.csdn.net/jfkidear/article/details/32141853
http://blog.csdn.net/huazifly/article/details/7053945
阅读(9688) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~