включает полное онлайновое руководство в формате GNU info (запустите
info gdb
), в котором детально объясняются все опции
gdb
. В [19] содержится неплохое подробное руководство по работе с
gdb
.
gdb
также поддерживает оперативную справку, ссылки на которую можно найти внутри
gdb
; доступ к справочным файлам можно получить, введя команду
help
. Можно также получить справку по каждой определенной команде, набрав
help команда
или
help тема
.
Подобно командам оболочки, команды
gdb
могут принимать аргументы. "Вызвать
help
с аргументом
команда
" означает то же самое, что и "набрать
help команда
".
Некоторые команды
gdb
также принимают идентификаторы формата для спецификации вывода значений. Идентификаторы формата располагаются за именем команды и отделяются от него косой чертой. После выбора формата необходимость использовать его каждый раз при повторе команды отпадает;
gdb
запоминает выбранный формат и использует его по умолчанию.
Идентификаторы формата отделены от команд символом
/
и состоят из трех элементов: цифра, буква формата и буква, отражающая размер. Цифра и буква размера не обязательны; по умолчанию в качестве цифры устанавливается
1
, а размер получает подходящее значение по умолчанию, основанное на букве формата.
Буквы формата следующие:
о
для обозначения восьмеричного числа,
x
для шестнадцатеричного числа,
d
для десятичного числа, и для беззнакового десятичного числа,
t
для двоичных данных,
f
для числа с плавающей запятой, а для адреса,
i
для инструкций, с для символа,
s
для строки.
Символы, отображающие размер, таковы:
b
— байт,
h
— полуслово (2 байта),
w
— слово (4 байта),
g
— слово-гигант (8 байт).
attach
,
at
Подключает отладчик к уже запущенному процессу. Единственным аргументом является идентификатор процесса (pid), к которому осуществляется подключение. Процессы, с которыми установлено подключение, останавливаются, прерывая любые ожидающие или текущие системные вызовы, которые разрешено прерывать. См.
detach
.
backtrace
,
bt
,
where
,
w
Выводит трассировку стека.
break
,
b
Устанавливает точку прерывания. Можно указать имя функции, номер строки текущего файла (файл, содержащий выполняемый в данный момент код), пару
имя_файла:номер_строки
или даже произвольный адрес с помощью
*адрес.gdb
назначает и выводит уникальный номер для каждой точки прерывания. См.
condition
,
clear
и
delete
.
clear
Удаляет точку прерывания. Принимает такой же аргумент, как
break
. См.
delete
.
condition
Изменяет точку прерывания, определенную номером (см.
break
), для прерывания, только если выражение истинно. Допускаются произвольные выражения.
(gdb) b664
Breakpoint 3 at 0х804а5с0: file ladsh4.c, line664.
(gdb) condition 3 status==0
delete
Удаляет точку прерывания, определенную номером.
detach
Отключается от текущего подключенного процесса.
display
Отображает значение выражения каждый раз при остановке выполнения. Принимает такие же аргументы (включая модификаторы формата), как
print
. Выводит номер отображения, которое впоследствии может использоваться для отмены отображения. См.
undisplay
.
Help
Вызывает справку. При вызове без аргумента предоставляет краткое описание доступной справочной информации. При вызове с другой командой в качестве аргумента выводит справку по этой команде. Доступны перекрестные ссылки.
jump
Переходит на произвольный адрес и продолжает выполнение процесса с этой точки. Адрес — единственный аргумент; его можно определить в форме номера строки или адреса, указанного как
*адрес
.
list
,
l
Выданная без аргументов
list
сначала выводит 10 строк, расположенных возле текущего адреса. Последующие вызовы list выводят последующие 10 строк. При использовании аргумента
–
выводит предыдущие 10 строк. При указании номера строки выводит 10 строк, окружающих эту строку. При указании пары
имя_файла:номер_строки
выводит 10 строк, окружающих заданную. При указании имени функции выводит 10 строк возле начала функции. При указании адреса в виде
*адрес
выводит 10 строк, окружающих код, находящийся по этому адресу. При указании двух строк, разграниченных запятыми, выводит все строки между заданными.
next
,
n
Переходит на следующую строку исходного кода в текущей функции, без захода внутрь функций. См.
step
.
nexti
Переходит на следующую инструкцию машинного языка без захода внутрь функций. См.
stepi
.
print
,
p
Выводит значение выражения в понятной форме. Если есть переменная
char* с
, команда
print с
выведет адрес строки, a
print *с
выведет саму строку. Для структур выводятся их члены. Можно использовать приведения типов, которые
gdb
будет учитывать. Если код скомпилирован с опцией
– ggdb
, в выражениях станут доступны перечислимые значения и определения препроцессора. См.
display
. Команда
print
принимает идентификаторы формата, несмотря на то, что при указании и преобразовании типов идентификаторы формата зачастую не нужны. См.
x
.
run
,
r
Запускает текущую программу с начала. Аргументы команды run передаются в командную строку для запуска программы. В
gdb
, подобно оболочке, можно универсализировать имена файлов с помощью
*
и
[]
, а также осуществлять переадресацию посредством
<
,
>
и
>>
, но нельзя создавать каналы или внутренние документы. Без аргументов
run
использует аргументы, которые были определены в самой последней команде
run
или
set args
. Для запуска без аргументов после их задействования используется команда