【GDB】print 操作打印完整字符串

Print

一般用GDB挂住进程后,跟踪流程时,想要看看某些变量,会执行

(gdb) print {变量名}

或者简写

(gdb) p {变量名}

亦或者根据某个地址查看字符串内容

(gdb) x/s 0x60000b32e2f6

如果字符串比较长的时候,打印的内容并不完整,显示完有限的字符,最后以'...'结束

(gdb) x/s 0x60000b32e2f6
0x60000b32e2f6: "POST /index.action HTTP/1.1
Host: 10.8.28.39:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-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,则代表不限制长度

原文地址:https://www.cnblogs.com/gaoshaonian/p/14600449.html