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

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

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

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

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

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

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

Идентификатор точки трассировки представляет собой трех- или четырехзначное шестнадцатеричное число, соответствующее отслеживаемому событию. В версиях, более ранних, чем AIX 6.1, а также в 32-разрядных приложениях под AIX 6.1 и выше, могут применяться только трехзначные идентификаторы точки трассировки. При использовании макросов трассировки, таких как TRCHKL1, точка трассировки определяется следующим образом:
hhh0000
где hhh - идентификатор точки трассировки.
В 64-разрядных приложениях и процедурах ядра под AIX 6.1 и выше можно использовать трех- и четырехзначные идентификаторы точек трассировки. При использовании макросов трассировки, таких как TRCHKL1, точка трассировки определяется следующим образом:
hhhh0000
где hhhh - идентификатор точки трассировки.
Прим.: Если используется четырехзначный идентификатор, и он меньше, чем 0x1000, то наименьшая по значимости цифра должна быть 0 (в форме 0x0hh0).

Трехзначный идентификатор имеет 0 в качестве наименьшей цифры. Таким образом, 32-разрядный идентификатор точки трассировки hhh равен 64-разрядному идентификатору hhh0.

Большинство идентификаторов точек трассировки определены в файле /usr/include/sys/trchkid.h. В 64-разрядных приложениях могут применяться значения в диапазоне 0x010-0x0FF. В пользовательских 32-разрядных приложениях могут применяться значения в диапазоне 0x010-0x0FF. Все остальные значения зарезервированы для системных целей. Список определенных в данный момент идентификаторов точек трассировки можно просмотреть с помощью команды trcrpt -j.

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

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

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

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

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

  • Запустите трассировку с помощью команды trace.
    Запустите трассировку в асинхронном режиме. Например:
    trace -a
    mycmd
    trcstop

    В асинхронном режиме трассировка выбранных системных событий (например, команды mycmd) запускается с помощью демона trace. Завершить трассировку позволяет команда trcstop.

    ИЛИ

    Запустите трассировку в интерактивном режиме. Например:
    trace
    ->!mycmd
    ->quit

    При работе с трассировкой в интерактивном режиме необходимо перейти к командной строке -> и с помощью подкоманд трассировки (таких как !) выполнять трассировку выбранных системных событий. Завершить трассировку можно с помощью подкоманды quit.

  • Вызовите команду smit trace и выберите опцию Запустить трассировку.
    smit trace

Завершение трассировки

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

  • Если трассировка выполняется в асинхронном режиме, введите в командной строке команду trcstop:
    
    trace -a
    mycmd
    trcstop

    В асинхронном режиме трассировка выбранных системных событий (например, команды mycmd) запускается с помощью демона trace. Завершить трассировку позволяет команда trcstop.

  • Если команда trace была запущена в интерактивном режиме из командной строки, то введите подкоманду quit:
    trace
    ->!mycmd
    ->quit

    Об интерактивном режиме свидетельствует командная строка ->. Подкоманды trace (например, !) позволяют выполнять трассировку выбранных системных событий. Завершить трассировку можно с помощью подкоманды quit.

  • Вызовите команду smit trace и выберите опцию Завершить трассировку.
    smit trace

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

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

  • С помощью команды trcrpt:
    trcrpt>/tmp/NewFile

    В предыдущем примере данные файла протокола трассировки форматируются и записываются в файл /tmp/newfile. Команда trcrpt получает данные из файла протокола трассировки, форматирует записи трассировки и создает отчет.

  • С помощью команды smit trcrpt:
    smit trcrpt