我在gdb中打印一个字符串(char *)
(gdb) p l
l=0x9aa1f48 "up2 129104596496602200 19 0 0 3 0 eth1 XX :001CB",'0' <repeats 12 times>, "DC"
是否有设置让p
打印整个字符串而不填写“重复...”。在它的同时 - 也扩展了字符串的默认可打印长度,如果字符串很长,p
似乎会被切断。
答案 0 :(得分:13)
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>
答案 1 :(得分:6)
使用gdb的printf命令,如下所示:
(gdb) printf "%s\n", a
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
而不是
(gdb) p a
$1 = 'a' <repeats 32 times>
答案 2 :(得分:0)
尝试:
(gdb) x /s l