Отладка с помощью GDB - 15. Управление GDB
[Содержание] [Назад] [Пред] [Вверх] [След] [Вперед]15. Управление GDB
Вы можете изменять способы взаимодействия GDB с вами, используя
команду set
. Для команд, управляющих способами отображения
данных GDB, смотрите раздел 8.7 Параметры вывода.
Другие установки описаны здесь.
15.1 Приглашение
GDB демонстрирует свою готовность считать команду, выводя строку,
называемую приглашением. Обычно это `(gdb)'. Вы
можете изменить строку приглашения командой set prompt
.
Например, при отладке GDB с помощью GDB, полезно
изменить приглашение в одном из сеансов так, чтобы вы всегда могли
понять, с каким из них вы общаетесь.
Замечание: set prompt
не добавляет пробелы после установленного
вами приглашения. Это позволяет устанавливать приглашение,
заканчивающееся пробелом или нет.
set prompt новое-пригл
- Указывает GDB, что с этого момента надо использовать в качестве стpоки приглашения новое-пригл.
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 пытается разбить стpоку в удобочитаемом месте, вместо того чтобы просто продолжить ее на следующую строчку.
Обычно 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 выводить опpеделенные информационные сообщения.
set verbose off
- Отключает вывод GDB опpеделенных информационных сообщений.
show verbose
-
Сообщает, установлено
set verbose
вon
илиoff
.
По умолчанию, если GDB сталкивается с ошибками в таблице символов объектного файла, он не сообщает об этом; но если вы отлаживаете компилятор, эта информация может вам пригодиться (см. раздел 12.2 Ошибки чтения файлов с символами).
set complaints предел
- Позволяет GDB выводить предел сообщений о каждом типе необычных символов прежде, чем пеpестать сообщать о проблеме. Установите предел в ноль для подавления всех сообщений, или очень большим, чтобы предотвратить подавление сообщений.
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 отладочной информации о переменных объектах.
[Содержание] [Назад] [Пред] [Вверх] [След] [Вперед]