ausyscall 无法提取新的系统调用

ausyscall cannot extract new systemcall

目前,我在 x86 上使用 linux 5.8。

当我运行ausyscall --dump时,系统调用显示正确,但是从linuxv5.6添加的新系统调用如openat2没有出现在输出中。

ausyscall如何获取系统调用?

它们是从每个体系结构的头文件生成的,例如lib/x86_64_table.h. You can see the commit that added openat2 is 8f41f04:

Update syscall table to the 5.11 kernel

master
v3.0.1
stevegrubb committed on Jan 18

头文件中的信息依次来自内核源代码的系统调用 table 文件。参见:lib/syscall-update.txt.

The place where syscall information is gathered is:

arch/arm/tools/syscall.tbl
arch/arm/include/uapi/asm/unistd.h
arch/powerpc/include/uapi/asm/unistd.h
arch/s390/kernel/syscalls/syscall.tbl
arch/x86/entry/syscalls/syscall_32.tbl
arch/x86/entry/syscalls/syscall_64.tbl
include/uapi/asm-generic/unistd.h (aarch64)