我正在使用gdb打印一个字符串(char *)
(gdb) p l
l=0x9aa1f48 "up2 129104596496602200 19 0 0 3 0 eth1 XX :001CB",'0' <repeats 12 times>, "DC"
是否有一种设置可以使p
打印整个字符串而不是填充“重复...”。顺便说一句,还可以扩展字符串的默认可打印长度,如果字符串相当长,p
似乎会截断它。
set print repeats 0
示例:
(gdb) p "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
$6 = 'a' <repeats 30 times>
(gdb) set print repeats 0
(gdb) p "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
$7 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
(gdb) set print repeats 10
(gdb) p "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
$8 = 'a' <repeats 30 times>
使用gdb的printf命令,像这样:
(gdb) printf "%s\n", a
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
而不是
(gdb) p a
$1 = 'a' <repeats 32 times>
尝试:
(gdb) x /s l
p
可以得到,但是用 x /s
就不行。 - Paul R