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


Рекомендуем почитать
Это ваше Fido

Одно из немногих изданий на русском языке, которое посвящено старейшей глобальной компьютерной сети "Fidonet". Сатирический справочник о жизни и смерти самого древнего сетевого сообщества, которое до сих пор существует среди нас.


Безопасность информационных систем

В пособии излагаются основные тенденции развития организационного обеспечения безопасности информационных систем, а также подходы к анализу информационной инфраструктуры организационных систем и решению задач обеспечения безопасности компьютерных систем.Для студентов по направлению подготовки 230400 – Информационные системы и технологии (квалификация «бакалавр»).


UNIX — универсальная среда программирования

В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями shell.Для программистов-пользователей операционной системы UNIX.


QNX/UNIX: Анатомия параллелизма

Книга адресована программистам, работающим в самых разнообразных ОС UNIX. Авторы предлагают шире взглянуть на возможности параллельной организации вычислительного процесса в традиционном программировании. Особый акцент делается на потоках (threads), а именно на тех возможностях и сложностях, которые были привнесены в технику параллельных вычислений этой относительно новой парадигмой программирования. На примерах реальных кодов показываются приемы и преимущества параллельной организации вычислительного процесса.


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

Применение виртуальных машин дает различным категориям пользователей — от начинающих до 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.