2

我正在使用 LTTng 2.0 来跟踪单击 USB 鼠标时发生的事件。我得到的跟踪是这样的(不需要的行已被删除):

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

这是当我收到 IRQ 12(鼠标中断)时开始的跟踪部分,我试图跟踪之后发生的事件,但我似乎无法解决其中的“sys_unknown”部分。我将不胜感激任何形式的帮助。

谢谢!

4

1 回答 1

3

“id”字段表示系统调用号。在 LTTng 2.x 中尚未实现探测的系统调用显示为“sys_unknown”。

系统调用 ID 与其实际名称之间的映射可以通过查看特定于体系结构的 unistd.h 文件手动完成,该文件通常安装在系统范围内。例如,在 x86-64 上,我可以在以下位置找到此信息:/usr/include/asm/unistd_64.h

于 2013-01-30T14:10:44.753 回答