Чтение онлайн

на главную - закладки

Жанры

Разработка приложений в среде Linux. Второе издание

Троан Эрик В.

Шрифт:

Ниже предложен небольшой набор полезных команд

gdb
;
gdb
включает полное онлайновое руководство в формате 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
. Для запуска без аргументов после их задействования используется команда
set args
без дополнительных аргументов.

Поделиться:
Популярные книги

Адвокат Империи 3

Карелин Сергей Витальевич
3. Адвокат империи
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Адвокат Империи 3

Кротовский, может, хватит?

Парсиев Дмитрий
3. РОС: Изнанка Империи
Фантастика:
попаданцы
альтернативная история
аниме
7.50
рейтинг книги
Кротовский, может, хватит?

Дурная жена неверного дракона

Ганова Алиса
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Дурная жена неверного дракона

Вонгозеро

Вагнер Яна
1. Вонгозеро
Детективы:
триллеры
9.19
рейтинг книги
Вонгозеро

Ведьма Вильхельма

Шёпот Светлана
Любовные романы:
любовно-фантастические романы
8.67
рейтинг книги
Ведьма Вильхельма

Папина дочка

Рам Янка
4. Самбисты
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Папина дочка

Законы Рода. Том 6

Flow Ascold
6. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 6

Как я строил магическую империю 7

Зубов Константин
7. Как я строил магическую империю
Фантастика:
попаданцы
постапокалипсис
аниме
фантастика: прочее
5.00
рейтинг книги
Как я строил магическую империю 7

Лучший из худший 3

Дашко Дмитрий
3. Лучший из худших
Фантастика:
городское фэнтези
попаданцы
аниме
6.00
рейтинг книги
Лучший из худший 3

Штурмовик из будущего 3

Политов Дмитрий Валерьевич
3. Небо в огне
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Штурмовик из будущего 3

Последний попаданец 2

Зубов Константин
2. Последний попаданец
Фантастика:
юмористическая фантастика
попаданцы
рпг
7.50
рейтинг книги
Последний попаданец 2

Идеальный мир для Лекаря 14

Сапфир Олег
14. Лекарь
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 14

Безумный Макс. Поручик Империи

Ланцов Михаил Алексеевич
1. Безумный Макс
Фантастика:
героическая фантастика
альтернативная история
7.64
рейтинг книги
Безумный Макс. Поручик Империи

Вдова на выданье

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Вдова на выданье