如何从内核中记录应用程序的系统调用(包括相关参数)?

0 c linux-kernel

我想记录内核中应用程序调用的系统调用(包括参数).有人告诉我,我可以挂钩所有系统调用或钩住sysenter,但是,我不知道该怎么做.顺便说一句,我已经尝试了strace实用程序,但似乎strace为我提供了比我预期更多的系统调用.例如:我构建了一个只包含"open,lseek,read,write和close"系统调用的程序,用于简单的文件操作,但strace返回了更多的系统调用,例如"access,fstat64等",而不是那些以上.为什么?

caf*_*caf 5

strace 将是一个更容易的方式.

在您的代码获得控制权之前,您所看到的额外系统调用是由您的进程执行的 - 例如,加载libc库的动态加载程序.