未能使用 eBPF 跟踪某些系统调用
Failure to trace some syscalls with eBPF
我正在使用 bcc 来跟踪多个系统调用,为什么我可以使用简单的 attach_kprobe
来跟踪 write
、close
、fchown
等系统调用,但可以不跟踪像 stat
、fstat
?
这样的系统调用
我假设是其他我无法追踪但尚未找到的系统调用。我如何追踪 stat
、fstat
以及它们与通常的 write
、close
有何不同?
示例代码:
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。
我正在使用 bcc 来跟踪多个系统调用,为什么我可以使用简单的 attach_kprobe
来跟踪 write
、close
、fchown
等系统调用,但可以不跟踪像 stat
、fstat
?
我假设是其他我无法追踪但尚未找到的系统调用。我如何追踪 stat
、fstat
以及它们与通常的 write
、close
有何不同?
示例代码:
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。