目前,我在x86上使用Linux 5.8。
当我运行ausyscall --dump
时,系统调用显示正确,但从 linux v5.6 添加的新系统调用(例如openat2
)不会出现在输出中。
ausyscall
如何获得系统调用?
它们是从每个架构的头文件生成的,例如lib/x86_64_table.h
.您可以看到添加openat2
的提交8f41f04
:
将系统调用表更新到 5.11 内核
master
v3.0.1
stevegrubb 于 1 月 18 日提交
标头中的信息又来自内核源中的系统调用表文件。请参阅:lib/syscall-update.txt
。
收集系统呼叫信息的位置是:
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)