【GDB】print 操作打印完整字符串
一般用GDB挂住进程后,跟踪流程时,想要看看某些变量,会执行
(gdb) print {变量名}
或者简写
(gdb) p {变量名}
亦或者根据某个地址查看字符串内容
(gdb) x/s 0x60000b32e2f6
如果字符串比较长的时候,打印的内容并不完整,显示完有限的字符,最后以'...'结束
(gdb) x/s 0x60000b32e2f6
0x60000b32e2f6: "POST /index.action HTTP/1.1\r\nHost: 10.8.28.39:8080\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nAccept-Language: en\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, l"...
解决方法
我们需要首先看下当前打印的长度,可以使用如下命令:
(gdb) show print elements
显示结果:
(gdb) show print ele
Limit on string chars or array elements to print is 200.
修改打印字符串长度命令
(gdb) set print elements 999
'999'即我们指定的长度,如果该值为0,则代表不限制长度