Den*_*nis 5 c++ linux bpf ebpf
我正在尝试从 BPF CO:RE 开发开始。在虚拟机中使用 Ubuntu 20.04 LTS,我需要重新编译内核并安装 pahole(来自 apt install dwarves),以便启用 BTF(我设置 CONFIG_DEBUG_FS=y 和 CONFIG_DEBUG_INFO_BTF=y)。
所以我的设置是:
/sys/kernel/btf/vmlinux 存在,可以用 cat 读出。
但 bpftool 显示以下错误:
$ sudo bpftool btf dump file /sys/kernel/btf/vmlinux format c
libbpf: failed to get EHDR from /sys/kernel/btf/vmlinux
Error: failed to load BTF from /sys/kernel/btf/vmlinux: Unknown error -4001
Run Code Online (Sandbox Code Playgroud)
从https://github.com/libbpf/libbpf/blob/master/src/libbpf.h 看来它是LIBBPF_ERRNO__FORMAT, /* BPF 对象格式无效 */ 但我无法找出问题所在。
有谁知道错误可能出在哪里?
提前致谢!
编辑:添加了 bpftool 版本
您需要更新 bpftool以支持在输入文件不是目标文件时将 BTF 作为原始数据读取的回退。所需的最低 bpftool 版本是 v5.5,因为这是补丁所在的 Linux 版本。一般来说,我建议始终使用最新的 bpftool 版本,因为没有向后移植。
| 归档时间: |
|
| 查看次数: |
4293 次 |
| 最近记录: |