Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЗ_А.Парамонов.doc
Скачиваний:
18
Добавлен:
08.09.2019
Размер:
7.82 Mб
Скачать

2.6.Средства отладки в ос Linux

2.6.1.Технологии отладки

Отладка – этап разработки программы (программного средства, программного обеспечения), включающий в себя обнаружение, локализацию и устранение ошибок [23]. В процессе отладки необходимо узнавать текущие значения переменных и выяснять путь, по которому выполнялась программа.

Существуют две взаимодополняющие технологии отладки:

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

  • Вывод текущего состояния программы с помощью расположенных в критических точках программы операторов вывода — на экран, принтер, громкоговоритель или в файл. Вывод отладочных сведений в файл называется журналированием или логированием.

2.6.2.Отладочные сообщения

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

Отладочные сообщения могут содержать информацию различного типа:

  • значения переменных;

  • сообщения, по которым можно сделать вывод о том, что был выполнен определенный участок программы;

  • информационные сообщения;

  • сообщения для отслеживания пути выполнения программы;

  • время вывода отладочного сообщения;

  • имя функции, в которой был осуществлен вывод сообщения;

  • номер строки в исходном файле программы.

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

2.6.3.Стандарт syslog

Syslog определен стандартом RFC 3164 и представляет собой стандарт отправки сообщений о происходящих в системе событиях, который используется в компьютерных сетях, работающих по протоколу IP.

Отправитель посылает короткое текстовое сообщение, размером меньше 1024 байт получателю сообщения. Получатель при этом носит имя «syslogd», «syslog daemon» или «syslog server». Стандарт предусматривает два варианта отправки сообщений – по протоколу UDP и по протоколу TCP. Как правило, такое сообщение отсылается в открытом виде. Тем не менее, используя специальные средства, возможно шифрование сообщений.

Syslog используется для удобства администрирования и обеспечения информационной безопасности. Он реализован под множество платформ и используется во множестве устройств. Поэтому, использование syslog позволяет обеспечить сбор информации с разных мест и хранение её в едином месте (см. рис. Рис. 2 .21).

Рис. 2.21. Сервер обработки сообщений syslog.

2.6.4.Удаленная отладка с помощью gdbserver

Удаленная отладка осуществляется через протокол TCP/IP или последовательное соединение и позволяет отлаживать как программы, выполняющиеся на другой машине, так и программы на данной машине через локальный интерфейс TCP/IP.

Для отладки программы на целевой машине запускается специальная управляющая программа для Unix-подобных систем gdbserver [24, c.130], которая позволяет установить соединение запущенной программы с удаленным GDB. GDB и gdbserver взаимодействуют друг с другом через последовательное соединение или соединение TCP/IP по протоколу GDB.

Команда запуска gdbserver для соединения через последовательный порт выглядит следующим образом:

gdbserver /dev/имя_порта имя_программы [параметры]

В случае отладки через соединение TCP/IP необходимо указать адрес соединения и номер порта:

gdbserver адрес:номер_порта имя_программы [параметры]

После запуска управляющая программа gdbserver пассивно осуществляет соединения со стороны указанного адреса или по указанному последовательному порту.

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

В зависимости от используемой среды отладки, в процессе отладки могут быть установлены точки останова, просмотрен стек вызовов программы, выведены значения переменных и т.д.