我想构建 4.18.1 Linux 内核并在几个地方添加调试日志:在克隆和 stat 系统调用中。我添加了这一行printk(KERN_INFO "syscallstat");
行https://elixir.bootlin.com/linux/v4.18.1/source/fs/stat.c#L246并printk(KERN_INFO "syscallclone");
在https://elixir.bootlin.com/linux/v4.18.1/source/kernel/fork.c#L2228
构建并安装新内核后,有 syscallclone 打印/var/log/messages
,但没有 syscallstat 打印。为了确保调用stat
系统调用,我创建了一个调用 stat() 的程序,并且 strace 显示它:stat("f", {st_mode=S_IFREG|0664, st_size=0, ...}) = 0