2012-12-09 1 views
2

Я использую LTTng 2.0 для отслеживания событий, возникающих при нажатии мыши USB. След, что я получаю что-то вроде этого (нежелательные линии были удалены):LTTng 2.0: системные вызовы sys_unknown

irq_handler_entry name=i8042, irq-12 
irq_handler_exit Irq-12, ret=1 (handled) 
exit_syscall  ret=1104 
sys_unknown   Id=18, args={3, 140405224710240, 1024, 59772114944, 1024, 140405251328896} 
exit_syscall  Ret=1024 
sys_unknown   Id=18, args={3, 140405255394560, 1024, 3256243200, 2048, 1} 
exit_syscall  Ret=1024 
sys_unknown   Id=18, args={3, 140405255394560, 1024, 3256243200, 2048, 1} 
exit_syscall  Ret=1024 
sys_unknown   Id=18, args={3, 140405255303968, 1024, 3256252416, 1024, 1} 
exit_syscall  Ret=1024 
sys_writev   Vec=140737365122800, vlen=2, fd=4 
exit_syscall  Ret=24 
sys_read   Buf=140405224710160, count=135168, fd=4 

Это часть трассы, которая начинается, когда я получаю 12 (прерывание мыши) IRQ, я пытаюсь следовать события, которые происходят после этого, но я, похоже, не могу разрешить часть «sys_unknown». Я был бы признателен за любую помощь.

Спасибо!

+0

Это ваша ошибка? https://bugs.lttng.org/issues/20 –

+0

Да, я проверил это. По-прежнему существуют некоторые системные вызовы, которые не были реализованы. Но журнал также дает идентификатор: 'sys_unknown Id = 18, args = {3, 140405255394560, 1024, 3256243200, 2048, 1}' Номер 18 является системным вызовом stat. Но я все еще не могу сделать из этого никаких выводов. Спасибо! – brokenfoot

ответ

3

Поле «id» указывает номер системного вызова. Системные вызовы, для которых зонды еще не реализованы в LTTng 2.x, отображаются как «sys_unknown».

Отображение между идентификатором системного вызова и его фактическим именем может быть выполнено вручную, если посмотреть на свой файл unistd.h, специфичный для вашей архитектуры, обычно устанавливаемый в системе. Например, на x86-64 я могу найти эту информацию в: /usr/include/asm/unistd_64.h