Разработка приложений в среде Linux - [15]

Шрифт
Интервал

. Более того, для повторения наиболее часто употребляемой команды, нужно просто нажать клавишу . Таким образом, пошаговое выполнение программы становится проще.

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


Рекомендуем почитать
Яйцо кукушки или Преследуя шпиона в компьютерном лабиринте

В отличие от плохого танцора, хорошему сисадмину мешают только кукушкины яйца. Их откладывают в его компьютер злобные хакеры, чтобы из них вылупились программы, делающие своего папу-кукушку суперпользователем. Но сколько кабелю не виться — а кончику быть: бравый сисадмин не дремлет и за годик-другой выводит злоумышленников на чистую воду: на этот раз хакерская тусовка круто пролетела. Такого предельно краткое содержание классической книги эксперта по компьютерной безопасности Клиффа Столла «Яйцо кукушки».



Серверные технологии хранения данных в среде Windows® 2000 Windows® Server 2003

Книга предназначена для читателей, хорошо знакомых с компьютерными системами и индустрией информационных технологий и желающих расширить познания в области систем хранения данных и архитектуры Windows NT, непосредственно связанной с подобными системами. В книге описываются корпоративные системы хранения данных, в то время как системам потребительского уровня уделяется меньше внимания. В этом издании сделана попытка поддержать интересы специалистов по программному обеспечению, мало знакомых с технологиями хранения данных, и профессионалов в области систем хранения данных, которые стремятся получить дополнительные знания по архитектуре обработки и хранения данных в Windows NT.


Iptables Tutorial 1.1.19

Iptables Tutorial 1.1.19Автор: (C) Oskar AndreassonCopyright (C) 2001-2002 by Oskar AndreassonПеревод: (C) Андрей КиселевПоследнюю версию документа можно получить по адресу: http://iptables-tutorial.frozentux.netfb2-документ отформатирован с использованием большого количества тегов и . Чтобы в «читалке» (в частности, Haali Reader) текст выглядел «красиво», настройте свойства соотвествующих стилей (emphasis и strong), изменив, например, их цвета или начертания. (прим. автора fb2-документа)


Перспективы свободного программного обеспечения в сфере государственного управления и бюджетном секторе

n1`Глава 2 из отчета Фонда Новая экономика Министерству экономического развития и торговли по теме «Анализ результатов и разработка предложений по созданию механизмов поддержки (в том числе за счет средств федерального бюджета) проектов по использованию ИКТ в экономике, социальной сфере, государственном управлении на региональном и муниципальном уровнях власти». Работа выполнена в рамках ФЦП «Электронная Россия». Дается очерк перспектив модели коммерческого программного обеспечения, известной как свободное программное обеспечение (СПО), в части удовлетворения потребности государственных органов и организаций в компьютерных программах, в сравнении с альтернативной (несвободной) моделью.


64 килобайта о Фидо

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.