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

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

Жанры

Разработка приложений в среде 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
без дополнительных аргументов.

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

Метатель. Книга 7

Тарасов Ник
7. Метатель
Фантастика:
боевая фантастика
попаданцы
постапокалипсис
рпг
фэнтези
фантастика: прочее
5.00
рейтинг книги
Метатель. Книга 7

Вернуть Боярство 3

Мамаев Максим
3. Пепел
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Вернуть Боярство 3

Сумеречный Стрелок 3

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

Студиозус

Шмаков Алексей Семенович
3. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
5.00
рейтинг книги
Студиозус

Неправильный лекарь. Том 1

Измайлов Сергей
1. Неправильный лекарь
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Неправильный лекарь. Том 1

Черный дембель. Часть 2

Федин Андрей Анатольевич
2. Черный дембель
Фантастика:
попаданцы
альтернативная история
4.25
рейтинг книги
Черный дембель. Часть 2

Развод с генералом драконов

Солт Елена
Фантастика:
фэнтези
5.00
рейтинг книги
Развод с генералом драконов

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

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

Око василиска

Кас Маркус
2. Артефактор
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Око василиска

Возвышение Меркурия. Книга 15

Кронос Александр
15. Меркурий
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 15

Кодекс Охотника. Книга XXIII

Винокуров Юрий
23. Кодекс Охотника
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XXIII

Бастард Императора. Том 4

Орлов Андрей Юрьевич
4. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Бастард Императора. Том 4

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

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

Своя правда

Шебалин Дмитрий Васильевич
2. Чужие интересы
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Своя правда