Вывести всю строку дословно в GDB - PullRequest
9 голосов
/ 12 февраля 2010

Я печатаю строку (char *) в GDB

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

Есть ли параметр, чтобы p печатал всю строку и не заполнял "повторы ...". В то время как при этом - также увеличить печатаемую длину строки по умолчанию, p кажется отрезанным, если строка довольно длинная.

Ответы [ 3 ]

13 голосов
/ 13 февраля 2010
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>
7 голосов
/ 13 февраля 2010

Используйте команду printf gdb следующим образом:

(gdb) printf "%s\n", a
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

вместо

(gdb) p a  
$1 = 'a' <repeats 32 times>
0 голосов
/ 12 февраля 2010

Попробуйте:

(gdb) x /s l
...