未能使用 eBPF 跟踪某些系统调用

Failure to trace some syscalls with eBPF

我正在使用 bcc 来跟踪多个系统调用,为什么我可以使用简单的 attach_kprobe 来跟踪 writeclosefchown 等系统调用,但可以不跟踪像 statfstat?

这样的系统调用

我假设是其他我无法追踪但尚未找到的系统调用。我如何追踪 statfstat 以及它们与通常的 writeclose 有何不同?

示例代码:

b = BPF(text=prog)
b.attach_kprobe(event=b.get_syscall_fnname("fstat"), fn_name="syscall_fstat")

在我的程序中我做了一个简单的打印

int syscall_fstat(void *ctx){
    bpf_trace_printk("fstat\n");
    return 0;
}

我应该使用 newstat,而不是使用 stat。