Печать нескольких переменных с помощью одной команды в GDB

Я хочу выполнить очень простую команду

print var1, var2, var3, var4 

в gdb, чтобы время от времени проверять значения варов.

Я не хочу использовать дисплей, потому что он загромождает мое представление.

Как я могу это сделать? Сейчас все, что я могу сделать, это:

p var1  
p var2  
p var3  
p var4  

Ответ 1

Используйте команду printf. Это немного хлопот, но он дает хороший контроль над форматированием. Из командной строки:

(gdb) help printf
printf "printf format string", arg1, arg2, arg3, ..., argn
This is useful for formatted output in user-defined commands.

Строка формата похожа на C (% d для нормального размера ints,% s для строк с нулевым завершением и т.д.).

Ответ 2

Вы можете просто сделать это

print {var1,var2,var3,var4}

Это выполнит задание.

Ответ 3

Использовать макросы:

Например, чтобы продолжить следующую точку прерывания и распечатать

(gdb) define prm 

Введите команды для определения prm. Завершите строку, говорящую только end.

>continue
>print var1
>print var2
>print var3
>end

(gdb) prm
$5 = 0
$6 = 10
$7 = -1

Ответ 5

Вы можете использовать просто пробел между двумя переменными.

print var1 var2