Отладка с помощью GDB - 15. Управление GDB
[Содержание] [Назад] [Пред] [Вверх] [След] [Вперед]
Вы можете изменять способы взаимодействия GDB с вами, используя
команду set . Для команд, управляющих способами отображения
данных GDB, смотрите раздел 8.7 Параметры вывода.
Другие установки описаны здесь.
GDB демонстрирует свою готовность считать команду, выводя строку,
называемую приглашением. Обычно это `(gdb)'. Вы
можете изменить строку приглашения командой set prompt .
Например, при отладке GDB с помощью GDB, полезно
изменить приглашение в одном из сеансов так, чтобы вы всегда могли
понять, с каким из них вы общаетесь.
Замечание: set prompt не добавляет пробелы после установленного
вами приглашения. Это позволяет устанавливать приглашение,
заканчивающееся пробелом или нет.
set prompt новое-пригл
-
Указывает GDB, что с этого момента надо использовать в качестве
стpоки приглашения новое-пригл.
show prompt
-
Печатает строку в форме: `Gdb's prompt is: ваше-пригл'
GDB читает входные команды через интерфейс readline. Эта
библиотека GNU обеспечивает согласованное поведение для программ,
которые предоставляют пользователю интерфейс командной строки.
Преимуществами являются стили редактирования командной строки GNU
Emacs или vi, csh -подобная подстановка истории
и сохранение и повторное использование истории команд между сеансами отладки.
Вы можете управлять поведением редактирования командной строки в
GDB командой set .
set editing
-
set editing on
-
Включает редактирование командной строки (включено по умолчанию).
set editing off
-
Отключает редактирование командной строки.
show editing
-
Показывает, включено редактирование командной строки или нет.
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 +
-
Вывести десять команд, расположенных сразу после последних выведенных.
Определенные команды 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 переносить строки вывода.
Вы всегда можете вводить в 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
-
Отобразить текущее основание по умолчанию для числового вывода.
По умолчанию, 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
-
Показывает, выводятся ли запросы подтверждений.
[Содержание] [Назад] [Пред] [Вверх] [След] [Вперед]
|