我尝试使用 eBPF 来跟踪我自己的内核模块中定义的函数,但出现错误。
libbpf: prog 'my_test_print': failed to find kernel BTF type ID of 'my_test_print': -3
libbpf: prog 'my_test_print': failed to prepare load attributes: -3
libbpf: prog 'my_test_print': failed to load: -3
libbpf: failed to load object 'ringbuffer_bpf'
libbpf: failed to load BPF skeleton 'ringbuffer_bpf': -3
我定义了名为
my_test_print
的函数并使用
EXPORT_SYMBOL(my_test_print);
暴露符号。我还检查了我的内核配置:
CONFIG_DEBUG_INFO_BTF=y
CONFIG_PAHOLE_HAS_SPLIT_BTF=y
CONFIG_DEBUG_INFO_BTF_MODULES=y
那么是否可以使用 eBPF 来跟踪我自己的内核模块中定义的函数?我怎样才能做到?
我发现this有类似的问题,但没有答案。