traceprinter

Отображение содержимого файла трассировки инструментального ядра

Синтаксис:

traceprinter [-nv] [-f файл] [-o выходной_файл]

Поддерживаемые платформы:

QNX Neutrino, Linux, Microsoft Windows

Опции:

-f файл

Имя файла, в котором хранится информация трассировки, подлежащая выводу. По умолчанию используется файл /dev/shmem/tracebuffer.kev.

-n

Удалить символы новой строки из выводимых строк аргументов.

-o выходной_файл

Имя файла для хранения данных. По умолчанию утилита traceprinter передает выходные данные в стандартный поток вывода stdout.

-v

Вывести расширенную информацию.

Описание:

Утилита traceprinter отображает содержимое файла трассировки, созданного утилитой tracelogger. Утилита выполняет синтаксический анализ событий, сохраненных в хронологическом порядке в линейном режиме, в указанном файле трассировки и передает получившийся форматированный поток в стандартный поток вывода (или в файл, определенный опцией -o).

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

t:время CPU:ЦП [класс: событие: [P1: [P2: [P3: ... [Pn:]]]]]

В потоке всегда отображаются переменные время и ЦП. Переменные, указанные в квадратных скобках, являются дополнительными.

время

В переменной время указывается смещение времени циклов тактовой частоты ЦП при регистрации события трассировки. 64- битовая переменная разделяется на два 32-битовых шестнадцатиричных числа (msb (старший бит) и lsb). За исключением начала трассировки и случая переноса lsb, отображается только номер lsb.

ЦП

Переменная ЦП представлена 2-разрядным десятичным числом и указывает ЦП, зарегистрировавший событие. Значением переменной всегда является 00, за исключением тех случаев, когда в системе SMP используется несколько ЦП: при наличии четырех ЦП, номера ЦП будут находиться в диапазоне от 00 до 03. Номера ЦП назначаются определенным ЦП во время инициализации, когда программа запуска выполняет проверку системы (см. procnto*).

Необязательные переменные

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

Одна из переменных класс

Одна из переменных событие

Параметры

CONTROL

TIME

P1 – msb
P2 – lsb (offset)

INT_ENTR
INT_EXIT

Номер прерывания в шестнадцатеричном (и десятичном) представлении

P1 – внутренняя переменная ядра

THREAD

THDEAD
THRUNNING
THREADY
THSTOPPED
THSEND
THRECEIVE
THREPLY
THSTACK
THWAITTHREAD
THWAITPAGE
THSIGSUSPEND
THSIGWAITINFO
THNANOSLEEP
THMUTEX
THCONDVAR
THJOIN
THINTR
THSEM
THWAITCTXN
THNET_SEND
THNET_REPLY
THCREATE
THDESTROY

P1 – идентификатор процесса
P2 – идентификатор потока

VTHREAD

VTHDEAD
VTHRUNNING
VTHREADY
VTHSTOPPED
VTHSEND
VTHRECEIVE
VTHREPLY
VTHSTACK
VTHWAITVTHREAD
VTHWAITPAGE
VTHSIGSUSPEND
VTHSIGWAITINFO
VTHNANOSLEEP
VTHMUTEX
VTHCONDVAR
VTHJOIN
VTHINTR
VTHSEM
VTHWAITCTXN
VTHNET_SEND
VTHNET_REPLY
VTHCREATE
VTHDESTROY

P1 – идентификатор процесса
P2 – идентификатор потока vthread

PROCESS

PROCCREATE
PROCCREATE_NAME
PROCDESTROY
PROCDESTROY_NAME

P1 – идентификатор родительского процесса
P2 – идентификатор процесса
P3 – имя процесса (необязательно)

KER_CALL

Имя вызова ядра

P1 – номер вызова ядра
P2, P3, ... Pn – аргументы вызова ядра

KER_EXIT

Имя вызова ядра

P1 – номер вызова ядра
P2, P3, ... Pn – возвращаемые значения вызова ядра


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

Примеры:

Пример нескольких первых строк выходных данных утилиты traceprinter:

TRACEPRINTER version 0.94

-- HEADER FILE INFORMATION --

TRACE_FILE_NAME:: /scratch/quadlog

TRACE_DATE:: Fri Jun 8 13:14:40 2001

TRACE_VER_MAJOR:: 0

TRACE_VER_MINOR:: 96

TRACE_LITTLE_ENDIAN:: TRUE

TRACE_ENCODING:: 16 byte events

TRACE_BOOT_DATE:: Fri Jun 8 04:31:05 2001

TRACE_CYCLES_PER_SEC:: 400181900

TRACE_CPU_NUM:: 4

TRACE_SYSNAME:: QNX

TRACE_NODENAME:: x86quad.gp.qa

TRACE_SYS_RELEASE:: 6.1.0

TRACE_SYS_VERSION:: 2001/06/04-14:07:56

TRACE_MACHINE:: x86pc

TRACE_SYSPAGE_LEN:: 2440

-- KERNEL EVENTS --

t:0x1310da15 CPU:01 CONTROL :TIME msb:0x0000000f, lsb(offset):0x1310d81c

t:0x1310e89d CPU:01 PROCESS :PROCCREATE_NAME

ppid:0

pid:1

name:./procnto-smp-instr

t:0x1310eee4 CPU:00 THREAD :THCREATE pid:1 tid:1

t:0x1310f052 CPU:00 THREAD :THRUNNING pid:1 tid:1

t:0x1310f144 CPU:01 THREAD :THCREATE pid:1 tid:2

t:0x1310f201 CPU:01 THREAD :THREADY pid:1 tid:2

t:0x1310f32f CPU:02 THREAD :THCREATE pid:1 tid:3

t:0x1310f3ec CPU:02 THREAD :THREADY pid:1 tid:3

t:0x1310f52d CPU:03 THREAD :THCREATE pid:1 tid:4

t:0x1310f5ea CPU:03 THREAD :THRUNNING pid:1 tid:4

t:0x1310f731 CPU:02 THREAD :THCREATE pid:1 tid:5

t:0x1310f7ee CPU:02 THREAD :THRECEIVE pid:1 tid:5

t:0x1310f921 CPU:03 THREAD :THCREATE pid:1 tid:6

t:0x1310f9de CPU:03 THREAD :THRECEIVE pid:1 tid:6

t:0x1310fb0b CPU:01 THREAD :THCREATE pid:1 tid:7

t:0x1310fbc8 CPU:01 THREAD :THRECEIVE pid:1 tid:7

t:0x1310fd1d CPU:02 THREAD :THCREATE pid:1 tid:8

t:0x1310fdda CPU:02 THREAD :THRECEIVE pid:1 tid:8

t:0x1310ff35 CPU:02 THREAD :THCREATE pid:1 tid:9

t:0x1310fff2 CPU:02 THREAD :THRECEIVE pid:1 tid:9

t:0x131100cc CPU:01 THREAD :THCREATE pid:1 tid:10

t:0x13110189 CPU:01 THREAD :THRECEIVE pid:1 tid:10

t:0x131102d5 CPU:03 THREAD :THCREATE pid:1 tid:11

t:0x13110392 CPU:03 THREAD :THRECEIVE pid:1 tid:11

t:0x1311084d CPU:01 PROCESS :PROCCREATE_NAME

ppid:1

pid:2

name:proc/boot/slogger

t:0x13110c13 CPU:03 THREAD :THCREATE pid:2 tid:1

t:0x13110ce0 CPU:03 THREAD :THRECEIVE pid:2 tid:1

Статус завершения:

-1

Возникла ошибка.

Ошибки:

Серьезные ошибки приводят к завершению работы утилиты traceprinter. Данные о некатастрофических ошибках отображаются в режиме вывода расширенной информации (если установлена опция -v).

Предупреждения:

Перед запуском утилиты traceprinter необходимо выполнить утилиту tracelogger. Утилита tracelogger создает файл событий с данными трассировки. Утилита traceprinter выполняет синтаксический анализ и вывод данных, содержащихся в этом файле.