[Содержание]   [Назад]   [Пред]   [Вверх]   [След]   [Вперед]  


15. Управление GDB

Вы можете изменять способы взаимодействия GDB с вами, используя команду set. Для команд, управляющих способами отображения данных GDB, смотрите раздел 8.7 Параметры вывода. Другие установки описаны здесь.

15.1 Приглашение

GDB демонстрирует свою готовность считать команду выводя строку, называемую приглашением. Обычно это `(gdb)'. Вы можете изменить строку приглашения командой set prompt. Например, при отладке GDB с помощью GDB, полезно изменить приглашение в одном из сеансов так, чтобы вы всегда могли понять, с каким из них вы общаетесь.

Замечание: set prompt не добавляет пробелы после установленного вами приглашения. Это позволяет устанавливать приглашение, заканчивающееся пробелом или нет.

set prompt новое-пригл
Указывает GDB, что с этого момента надо использовать в качестве строки приглашения новое-пригл.
show prompt
Печатает строку в форме: `Gdb's prompt is: ваше-пригл'

15.2 Редактирование команд

GDB читает входные команды через интерфейс readline. Эта библиотека GNU обеспечивает единообразное поведение для программ, которые предоставляют пользователю интерфейс командной строки. Преимуществами являются стили редактирования командной строки GNU Emacs или vi, csh-подобная подстановка истории и сохранение и повторное использование истории команд между сеансами отладки.

Вы можете управлять поведением редактирования командной строки в GDB командой set.

set editing
set editing on
Включает редактирование командной строки (включено по умолчанию).
set editing off
Отключает редактирование командной строки.
show editing
Показывает, включено редактирование командной строки или нет.

15.3 История команд

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

set history filename имя-файла
Устанавливает имя файла истории команд GDB в имя-файла. Это файл, откуда GDB читает исходный список истории команд, и куда он записывает историю команд при выходе из данного сеанса. Вы можете обращаться к этому списку через раскрывание истории или с помощью символов редактирования истории команд, перечисленных ниже. По умолчанию, этот файл есть значение переменной среды GDBHISTFILE или, если эта переменная не установлена, `./.gdb_history' (`./_gdb_history' в MS-DOS).
set history save
set history save on
Записать историю команд в файл, имя которого может быть определено командой set history filename. По умолчанию, эта возможность отключена.
set history save off
Прекратить запись истории команд в файл.
set history size размер
Установить число команд, которые GDB хранит в своем списке истории. Значение по умолчанию берется из переменной среды HISTSIZE или приравнивается 256, если эта переменная не установлена.

Раскрывание истории назначает специальное значение знаку !.

Так как ! является также оператором логического отрицания в Си, раскрывание истории по умолчанию отключено. Если вы решите включить раскрывание истории командой set history expansion on, вы должны будете снабдить ! (когда он используется как логическое отрицание в выражении) последующим пробелом или символом табуляции, чтобы предохранить его от раскрывания. Средства истории Readline не делают попытки подстановки на строках != и !(, даже когда раскрывание истории включено.

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

set history expansion on
set history expansion
Включить раскрывание истории. Раскрывание по умолчанию отключено.
set history expansion off
Отключить раскрывание истории. Библиотека Readline поставляется вместе с более полной документацией по возможностям редактирования и раскрывания истории. Пользователи, незнакомые с GNU Emacs или vi, могут почитать ее.
show history
show history filename
show history save
show history size
show history expansion
Эти команды отображают состояние параметров истории GDB. Просто show history показывает все четыре состояния.
show commands
Отобразить последние десять команд в истории.
show commands n
Вывести десять команд, расположенных вокруг команды с номером n.
show commands +
Вывести десять команд, расположенных сразу после последних выведенных.

15.4 Размер экрана

Определенные команды GDB могут выводить большое количество информации на экран. Чтобы помочь вам всю ее прочитать, GDB приостанавливает вывод и запрашивает ввод в конце каждой страницы вывода. Нажмите RET, когда вы хотите продолжить вывод, или q для уничтожения оставшегося вывода. Также, установка ширины экрана определяет, когда переносить строки вывода. В зависимости от того, что выводится, GDB пытается разбить строку в удобочитаемом месте, вместо того чтобы просто продолжить ее на следующую строчку.

Обычно GDB узнает размер экрана из программы драйвера терминала. Например, в Unix GDB использует базу данных termcap, вместе со значением переменной среды TERM и установками stty rows и stty cols. Если это неправильно, вы можете заменить эти установки командами set height и set width:

set height lpp
show height
set width cpl
show width
Эти команды set определяют высоту экрана в lpp строк и ширину в cpl знаков. Соответствующие команды show отображают текущие установки. Если вы определите высоту в ноль строк, GDB не будет останавливаться при выводе, независимо от того, насколько он длинный. Это полезно, если вывод осуществляется в файл или буфер редактора. Аналогично, вы можете определить `set width 0', чтобы запретить GDB переносить строки вывода.

15.5 Числа

Вы всегда можете вводить в GDB числа в восьмеричной, десятичной или шестнадцатеричной системе в соответствии c обычными соглашениями: восьмеричные числа начинаются с `0', десятичные числа оканчиваются на `.', а шестнадцатеричные числа начинаются с `0x'. Числа, которые не начинаются ни c одного из этих знаков, по умолчанию считаются десятичными; аналогично, отображение чисел по умолчанию -- если не определен никакой конкретный формат -- осуществляется по основанию 10. Командой set radix вы можете изменять основание, устанавливаемое по умолчанию для ввода и вывода.

set input-radix основание
Установить основание по умолчанию для числового ввода. Поддерживаемые варианты для основания -- 8, 10 или 16. Само основание должно быть определено либо недвусмысленно, либо с использованием текущего основания системы счисления по умолчанию; например, любая из команд
set radix 012
set radix 10.
set radix 0xa
устанавливает десятичное основание. С другой стороны, `set radix 10' оставляет основание системы счисления без изменений независимо от того, каким оно было.
set output-radix основание
Установить основание по умолчанию для числового вывода. Поддерживаемые варианты для основания -- 8, 10 или 16. Само основание должно быть определено либо недвусмысленно, либо с использованием текущего основания системы счисления по умолчанию.
show input-radix
Отобразить текущее основание по умолчанию для числового ввода.
show output-radix
Отобразить текущее основание по умолчанию для числового вывода.

15.6 Необязательные предупреждения и сообщения

По умолчанию, GDB ничего не сообщает о своей внутренней деятельности. Если вы работаете на медленной машине, то вы можете захотеть использовать команду set verbose. Она велит GDB сообщать вам, когда он выполняет длинную внутреннюю операцию, чтобы вы не думали, что он завис.

В настоящее время set verbose управляет только сообщениями о чтении таблиц символов исходного файла; смотрите раздел 12.1 Команды для задания файлов, описание symbol-file.

set verbose on
Разрешает GDB выводить некоторые информационные сообщения.
set verbose off
Отключает вывод некоторых информационных сообщений.
show verbose
Сообщает, установлено set verbose в on или off.

По умолчанию, если GDB сталкивается с ошибками в таблице символов объектного файла, он не сообщает об этом; но если вы отлаживаете компилятор, эта информация может вам пригодиться (см. раздел 12.2 Ошибки чтения файлов с символами).

set complaints предел
Позволяет GDB выводить предел сообщений о каждом типе необычных символов прежде, чем перестать сообщать о проблеме. Установите предел в ноль для подавления всех сообщений, или очень большим, чтобы предотвратить подавление сообщений.
show complaints
Выводит ограничение GDB на вывод сообщений о символах.

По умолчанию GDB осмотрителен и задает, как иногда кажется, множество глупых вопросов, чтобы подтвердить некоторые команды. Например, если вы пытаетесь выполнить программу, которая уже выполняется:

(gdb) run
The program being debugged has been started already.
Start it from the beginning? (y or n)

Если вы неуклонно желаете сами разбираться с последствиями ваших собственных команд, вы можете отключить эту "возможность":

set confirm off
Отключает запросы подтверждений.
set confirm on
Включает запросы подтверждений (по умолчанию).
show confirm
Показывает, выводятся ли запросы подтверждений.

15.7 Необязательные сообщения о внутренних событиях

set debug arch
Включает и отключает вывод отладочной информации gdbarch. По умолчанию отключено.
show debug arch
Отображает текущее состояние вывода отладочной информации gdbarch.
set debug event
Включает и отключает вывод отладочной информации о событиях GDB. По умолчанию отключено.
show debug event
Отображает текущее состояние вывода отладочной информации о событиях GDB.
set debug expression
Включает и отключает вывод отладочной информации о выражениях GDB. По умолчанию отключено.
show debug expression
Отображает текущее состояние вывода отладочной информации о выражениях GDB.
set debug overload
Включает и выключает вывод GDB отладочной информации о перегруженных символах Си++. Это включает такую информацию, как упорядочивание функций и тому подобное. По умолчанию отключено.
show debug overload
Отображает текущее состояние вывода GDB отладочной информации о перегруженных символах Си++.
set debug remote
Включает и выключает вывод отчета о всех пакетах, посланных вперед и назад по последовательной линии удаленной машине. Информация печатается в стандартный выходной поток GDB. По умолчанию отключено.
show debug remote
Выводит состояние вывода удаленных пакетов.
set debug serial
Включает и выключает вывод GDB отладочной информации о последовательном соединении. По умолчанию отключено.
show debug serial
Отображает текущее состояние вывода GDB отладочной информации о последовательном соединении.
set debug target
Включает и выключает вывод GDB отладочной информации о цели. Сюда входит информация о том, что происходит на уровне цели GDB. По умолчанию отключено.
show debug target
Отображает текущее состояние вывода GDB отладочной информации о цели.
set debug varobj
Включает и отключает вывод GDB отладочной информации о переменных объектах. По умолчанию отключено.
show debug varobj
Отображает текущее состояние вывода GDB отладочной информации о переменных объектах.


[Содержание]   [Назад]   [Пред]   [Вверх]   [След]   [Вперед]