traceprinter

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

Синтаксис:

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

Опции:

-f файл
Имя файла, в котором хранится информация трассировки, подлежащая выводу. По умолчанию используется файл /dev/shmem/tracebuffer.kev.
-n
Удалить символы новой строки из выводимых строк аргументов.
-o выходной_файл
Имя файла для хранения данных. По умолчанию утилита traceprinter передает выходные данные в стандартный поток вывода stdout.
-v
Вывести расширенную информацию.

Платформы:

ЗОСРВ «Нейтрино», GNU/Linux, Microsoft Windows

Целевые архитектуры:

arm, armv7, aarch64, e2k, mips, ppc, x86

Описание:

Утилита 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

Возвращаемое значение:

0
Успешное завершение.
-1
Утилита завершилась с ошибками.

Ошибки:

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

Предостережения:

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

Классификация:

Инструментальные средства ЗОСРВ «Нейтрино»




Предыдущий раздел: Справочник по утилитам