[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]

Программирование: Разработка и отладка программ


Запуск трассировщика

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

Настройка команды trace

Команда trace запускает трассировку системных событий, управляет файлом протокола трассировкии его размером, а также буферами трассировки, в которых хранятся данные об отслеживаемых событиях. Синтаксис этой команды следующий:

trace [-fl] [-ad] [-s] [-h] [-jk события] [,события]
[-m сообщение] [-o файл_вывода][-g] [-T размер_буфера] [-L размер_протокола]

С командой trace могут быть указаны следующие опции:

-f или -l Управляет сбором данных трассировки в памяти системы. Если ни одна из опций -f и -l не указана, трассировщик создает в памяти системы два буфера для хранения данных трассировки. Данная команда позволяет осуществлять управление файлами протокола трассировки и внутренними буферами трассировки, в которых собираются данные событий, а также их размером. Флаги -f и -l позволяют отключить запись данных событий в файл протокола во время сбора данных. Если указан флаг (-f - first), сбор данных продолжается до заполнения буфера, а если указан флаг (-l), данные в буфере постоянно перезаписываются, поэтому будут зафиксированы только последние события, происшедшие до завершения трассировки. Опции -f и -l не могут быть указаны одновременно. Если указана одна из опций ( -f или -l) данные из буфера не записываются в файл протокола до завершения трассировки.
-a Запускает сбор данных трассировки в асинхронном режиме (в фоновом режиме), после чего снова появляется командная строка. Без этой опции команда trace выполняется в режиме подкоманд, после ее запуска появляется командная строка >. В режиме подкоманд трассировки можно вызывать стандартные команды оболочки, начиная их с восклицательного знака, и подкоманды.
-d Откладывает сбор данных. Выполняется только настройка трассировщика. Сбор данных начинается после наступления одного из событий триггера. Существуют различные способы включения и завершения сбора данных по триггерам. Среди них:
  • Подкоманды trace
  • Команды trace
  • Функции trace
-j события или -k события Задает набор событий, которые включить (-j) или исключить (-k) из процесса сбора данных. Списки событий задаются в виде последовательностей трехзначных шестнадцатеричных ИД событий, разделенных пробелами.
-s Завершение сбора данных трассировки при достижении файлом протокола трассировки заданного максимального размера. Если эта опция не указана и файл достигнет максимального размера, данные будут перезаписываться по методу FIFO.
-h Если указана эта опция, в файл протокола трассировки не записывается заголовок date/sysname/message.
-m сообщение Задает текстовую строку (сообщение), которое включается в запись заголовка протокола трассировки. Сообщение входит в отчеты, создаваемые с помощью команды trcrpt

средств работы с сообщениями.

-o файл_вывода Задает файл протокола. Если опция -o не указана, применяется файл /var/adm/ras/trcfile. Для того чтобы направить данные трассировки в стандартный вывод, укажите опцию -o как -o -. Эту опцию следует применять только для перенаправления потока данных в другой процесс, так как данные трассировки содержат события в необработанном двоичном виде.
-g Дублирует настройки трассировки для нескольких каналов. Канал по умолчанию - 0 - всегда применяется для записи системных событий. Другие каналы являются каналами общего назначения. Каналы трассировки общего назначения могут применяться в системе в различных целях. Эти каналы могут применяться в пользовательских приложениях. Каждый созданный канал представляет собой отдельный поток данных событий. События, записанные в канал 0 смешиваются с потоком данных предопределенных системных событий. Для других каналов специальное назначение должно быть задано.

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

-T размер и -L размер Задает размер буферов сбора данных и максимальный размер файла протокола трассировки в байтах.

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

Если значение не указано, применяется размер, заданный по умолчанию.

Запись данных событий трассировки

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

Идентификаторы точек трассировки

Идентификатор точки трассировки представляет собой трехзначное шестнадцатеричное число, соответствующее отслеживаемому событию. Идентификатор точки трассировки занимает первые двенадцать разрядов ключевого слова. В пользовательских приложениях могут применяться значения в диапазоне 0x010-0x0FF. Все остальные значения зарезервированы для системных целей. Список идентификаторов точек трассировки для данного программного обеспечения можно просмотреть с помощью команды trcrpt -j.

Каналы трассировки работают с общими идентификаторами точек трассировки, хранящимися в файле /usr/include/sys/trchkid.h, и шаблонами форматирования трассировки, хранящимися в файле /etc/trcfmt.

Типы точек трассировки

Тип точки трассировки определяет формат данных о событии и указывается пользователем. Тип точки трассировки хранится в разрядах 12-16 ключевого слова. Более подробная информация о типах точек трассировки приведена в описаниях функций trcgen, trcgenk и trchook.

Применение каналов трассировки общего назначения

Трассировщик может поддерживать до восьми активных сеансов трассировки одновременно. Каждый сеанс трассировки работает с отдельным каналом специального файла мультиплексной трассировки /dev/systrace. Канал 0 служит для регистрации системных событий. Трассировка системных событий запускается командой trace и прекращается командой trcstop. Каналы 1-7 называются каналами трассировки общего назначения и могут использоваться подсистемами для трассировки других событий, например, событий передачи данных.

Для инициализации канала трассировки общего назначения подсистема вызывает функцию trcstart, которая активизирует канал трассировки и возвращает его номер. После этого модули подсистемы могут регистрировать события с помощью функций trcgen, trcgent,trcgenk или trcgenkt. Номер канала, возвращаемый функцией trcstart, должен передаваться в эти функции в числе прочих параметров. Подсистема может приостановить регистрацию с помощью функции trcoff, возобновить ее с помощью функции trcon и деактивизировать канал трассировки с помощью функции trcstop. События, отслеживаемые в каждом канале, должны заноситься в отдельный файл протокола трассировки, имя которого необходимо указать при вызове функции trcstart. Для активизации и деактивизации трассировки в подсистеме в последней должен быть предусмотрен пользовательский интерфейс.

Запуск трассировки

Ниже описаны способы запуска трассировки.

Остановка трассировки

Ниже описаны способы остановки трассировки.

Создание отчета трассировки

Ниже описаны различные способы создания отчета о трассировке событий.


[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]