Неспособность отследить некоторые системные вызовы с помощью eBPF
Я использую bcc для отслеживания нескольких системных вызовов, почему я могу отслеживать такие системные вызовы, как write
, close
, fchown
используя простой attach_kprobe
но не могу отслеживать системные вызовы, такие как 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;
}
1 ответ
Решение
Вместо того, чтобы использовать stat, я должен использовать newstat.