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) |