Печать нескольких переменных с помощью одной команды в 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
Ответ 4
Может быть более простое решение, но вы можете собрать что-то с помощью макросов GDB: http://www.ibm.com/developerworks/aix/library/au-gdb.html
Ответ 5
Вы можете использовать просто пробел между двумя переменными.
print var1 var2