在gdb中逐字打印整个字符串

nos*_*nos 10 c debugging gdb

我在gdb中打印一个字符串(char*)

(gdb) p l
l=0x9aa1f48 "up2 129104596496602200 19 0 0 3 0 eth1 XX :001CB",'0' <repeats 12 times>, "DC"
Run Code Online (Sandbox Code Playgroud)

是否有设置p打印整个字符串,而不是填写"重复......".在它的同时 - 也扩展了字符串的默认可打印长度,p如果字符串很长,似乎会切断.

ken*_*ytm 14

set print repeats 0
Run Code Online (Sandbox Code Playgroud)

例:

(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>
Run Code Online (Sandbox Code Playgroud)


Tod*_*ton 7

像这样使用gdb的printf命令:

(gdb) printf "%s\n", a
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Run Code Online (Sandbox Code Playgroud)

代替

(gdb) p a  
$1 = 'a' <repeats 32 times>
Run Code Online (Sandbox Code Playgroud)