Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания Редакция 1.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
100.42 Кб
Скачать

Настройки среды

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

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

Команда path каталог добавит указанный 'каталог' в начало переменной среды PATH (пути поиска выполняемых файлов), как для gdb, так и для программы. Можно указать названия нескольких каталогов, разделив их пробелом или системно-зависимым разделителем (':' в UNIX). Если 'каталог' уже находится в списке путей, он переносится в начало, так что поиск в нем будет производиться раньше. Можно использовать строку 'cwd', чтобы сослаться на рабочий каталог, который является текущим в тот момент, когда gdb производит поиск. Если вместо этого пользователь использует '.', то она будет указывать на тот каталог, в котором он выполнил команду path. Отладчик gdb заменяет '.' в аргументе 'каталог' (на текущий путь) до добавления 'каталога' к списку путей поиска.

Команда show paths отобразит список путей для поиска выполняемых файлов (переменную среды PATH).

Вывести значение переменной среды, которое будет передано программе при ее старте, можно с помощью команды show environment [имя_переменной].

Если параметр 'имя-переменной' не указан, команда show environment выведет названия и значения всех переменных среды, передаваемых программе. Можно сократить environment как env.

Присвоить значение переменной среды можно с помощью команды set environment имя_переменной [=значение].'Значение' меняется только для программы, но не для самого gdb. 'Значение' может быть любой строкой; значениями переменных среды являются просто строки, а их интерпретацию обеспечивает программа пользователя. Если параметр 'значение' опущен, переменная устанавливается в пустое значение.

Удаляет переменную из среды, передаваемой отлаживаемой программе, команда unset environment имя-переменной. Эта команда отличается от предыдущей, она удаляет переменную из среды, а не присваивает ей пустое значение.

Рабочий каталог отлаживаемой программы

Программа наследует свой рабочий каталог от gdb. В начальный момент, рабочий каталог gdb наследуется от его родительского процесса (обычно оболочки). Рабочий каталог gdb также служит каталогом по умолчанию для команд отладчика, определяющих действия с файлами.

Команда cd позволяет установить рабочий каталог gdb

cd каталог

Команда pwd выводит рабочий каталог gdb.

Ввод и вывод отлаживаемой программы

Обычно программа использует те же устройства для стандартного ввода и вывода, что и gdb. Для взаимодействия с пользователем gdb переключает терминал в свой собственный терминальный режим, но он записывает терминальные режимы, которые использовала программа, и переключается назад к ним, когда пользователь продолжает выполнение программы. Предупреждение: хотя перенаправление ввода и вывода работает, невозможно использовать каналы для передачи выходных данных отлаживаемой программы другой программе; при попытке это сделать, скорее всего gdb перейдет к отладке неправильной программы.

Команда

info terminal

отображает информацию, записанную gdb о терминальных режимах, которые использует программа. Можно перенаправить ввод и/или вывод программы, используя перенаправление оболочки с помощью команды run. Например:

run > выходной_файл

запускает программу, перенаправляя ее вывод в 'выходной­_файл'.

Другим способом перенаправления ввод и вывода является команда tty. Эта команда принимает в качестве аргумента имя файла, который будет использоваться по умолчанию для будущих команд run. Эта команда также сбрасывает управляющий терминал для дочернего процесса для будущих команд run. Например:

tty /dev/ttyb

указывает, что процессы, запущенные последующими командами run, для ввода и вывода используют по умолчанию терминал '/dev/ttyb', и что он будет их управляющим терминалом.

Явное перенаправление в run замещает эффект команды tty для устройств ввода-вывода, но не ее воздействие на управляющий терминал.

Когда вы используется команда tty или перенаправляется ввод в команде run, изменяется только ввод программы. Ввод для gdb по-прежнему происходит через терминал пользователя.