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

на главную

Жанры

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

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

Бастард Императора

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

На границе империй. Том 10. Часть 1

INDIGO
Вселенная EVE Online
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 1

Имя нам Легион. Том 7

Дорничев Дмитрий
7. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 7

Измена. Вторая жена мужа

Караева Алсу
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Вторая жена мужа

Буря империи

Сай Ярослав
6. Медорфенов
Фантастика:
аниме
фэнтези
фантастика: прочее
эпическая фантастика
5.00
рейтинг книги
Буря империи

Пенсия для морского дьявола

Чиркунов Игорь
1. Первый в касте бездны
Фантастика:
попаданцы
5.29
рейтинг книги
Пенсия для морского дьявола

На изломе чувств

Юнина Наталья
Любовные романы:
современные любовные романы
6.83
рейтинг книги
На изломе чувств

Тринадцатый II

NikL
2. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Тринадцатый II

Сирота

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

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

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

Красноармеец

Поселягин Владимир Геннадьевич
1. Красноармеец
Фантастика:
боевая фантастика
попаданцы
4.60
рейтинг книги
Красноармеец

Огненный князь 4

Машуков Тимур
4. Багряный восход
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Огненный князь 4

Начальник милиции. Книга 5

Дамиров Рафаэль
5. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Начальник милиции. Книга 5

Инкарнатор

Прокофьев Роман Юрьевич
1. Стеллар
Фантастика:
боевая фантастика
рпг
7.30
рейтинг книги
Инкарнатор