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


Рекомендуем почитать
Виртуальные  машины: несколько компьютеров в  одном

Применение виртуальных машин дает различным категориям пользователей — от начинающих до IT-специалистов — множество преимуществ. Это и повышенная безопасность работы, и простота развертывания новых платформ, и снижение стоимости владения. И потому не случайно сегодня виртуальные машины переживают второе рождение.В книге рассмотрены три наиболее популярных на сегодняшний день инструмента, предназначенных для создания виртуальных машин и управления ими: Virtual PC 2004 компании Microsoft, VMware Workstation от компании VMware и относительно «свежий» продукт — Parallels Workstation, созданный в компании Parallels.


Недокументированные и малоизвестные возможности Windows XP

Книга содержит подробные сведения о таких недокументированных или малоизвестных возможностях Windows XP, как принципы работы с программами rundll32.exe и regsvr32.exe, написание скриптов сервера сценариев Windows и создание INF-файлов. В ней приведено описание оснасток, изложены принципы работы с консолью управления mmc.exe и параметрами реестра, которые изменяются с ее помощью. Кроме того, рассмотрено большое количество средств, позволяющих выполнить тонкую настройку Windows XP.Эта книга предназначена для опытных пользователей и администраторов, которым интересно узнать о нестандартных возможностях Windows.


Windows Vista. Мультимедийный курс

Эта книга поможет вам разобраться в премудростях операционной системы Windows Vista.Информационная насыщенность учебного материала позволяет утверждать, что мультимедийный курс будет интересен и новичкам, и опытным пользователям.


FAQ по смартфону Qtek 8300/8310

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


Домашние и офисные сети под Vista и XP

Количество персональных компьютеров в нашей стране растет год от года. Сегодня во многих семьях имеется два или даже три компьютера.Чтобы воспользоваться всеми преимуществами такой ситуации, компьютеры в вашей квартире стоит объединить сетью. Это позволит вам играть по сети в компьютерные игры, совместно использовать дисковое пространство, принтеры, модемы и другие устройства, всю сеть можно соединить с Интернетом. А в офисах сеть между компьютерами просто необходима.Открывающиеся перспективы выглядят очень заманчиво.


Свободные программы и системы в школе

Курс лекций, включенных в брошюру, знакомит читателя с популярными свободными программами и системами, полезными при преподавании информатики в средней школе. В обзор вошли основы открытых операционных систем, сведения о пакете «офисных» программ OpenOffice.org, коммуникационном пакете Mozilla, графическом редакторе GIMP, современных графических средах GNOME и KDE и других программах.Для преподавателей информатики и методистов, а также для студентов и аспирантов соответствующих специальностей.© 2002-3, Максим Отставнов.© 2002, Андрей Добровольский (раздел 3.1).Использован текст лекций, публиковавшихся автором в приложении к газете «Первое сентября» «Информатика» (http://inf.1september.ru) в 2002-3 г., материалы брошюры «Прикладные свободные программы в школе» (М.: 2003 г.), а также фрагменты статей, ранее публиковавшихся в журналах «Компьютерра» и «Домашний компьютер».Материалы, представленные в этой книге, также доступны в Интернет на странице www.otstavnov.com/fsft на условиях Свободной лицензии ГНУ на документацию (GNU FDL)