我使用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”部分。我希望得到任何帮助。
谢谢!
答案 0 :(得分:3)
“id”字段表示系统呼叫号码。在LTTng 2.x中尚未实现探测的系统调用显示为“sys_unknown”。
系统调用ID与其实际名称之间的映射可以通过查看特定于体系结构的unistd.h文件手动完成,该文件通常在系统范围内安装。例如,在x86-64上,我可以在/usr/include/asm/unistd_64.h中找到这些信息