通常在gdb调试时要打印出一些字符串的内容,通过
p str@str_len打印字符串时,通常有长度的限制。
我测试linux机器上默认为200个,但实际输出的长度str_len可能大于该值。
结果不能够完全输出,而进行了省略,通过命令set print element 0就可以了。
eg:
(gdb) set print element 0
(gdb) 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"