无法使用 bpftool 获取 ebpf 程序 jitted 输出
Can't get ebpf program jitted output using bpftool
当我 运行 sudo bpftool prog show
我得到以下输出
39: socket_filter name bpfprog1 tag e29cda32ba011d7f gpl
loaded_at 2019-09-08T14:21:57+0200 uid 1000
xlated 248B jited 169B memlock 4096B map_ids 30
但是如果我尝试使用以下命令使程序得到 jitted 输出
sudo bpftool prog dump jited tag e29cda32ba011d7f
我收到一条错误消息,报告如下:
错误:无法获取程序信息 (3):地址错误
问题:我做错了什么? XD
您肯定使用了从 Linux 4.20 或更早版本编译的 bpftool 版本,并遇到了 fixed in version 5.0 的错误。更新 bpftool,按标签转储程序应该又可以工作了。
附带说明一下,我通常使用程序 ID 或固定路径,因为我发现检索我想要的程序更有用。根据您的用例,标签可能很有意义,特别是如果您经常加载相同的程序而无需更改(因此您一定会保留相同的标签)并且没有固定它们。
当我 运行 sudo bpftool prog show
我得到以下输出
39: socket_filter name bpfprog1 tag e29cda32ba011d7f gpl
loaded_at 2019-09-08T14:21:57+0200 uid 1000
xlated 248B jited 169B memlock 4096B map_ids 30
但是如果我尝试使用以下命令使程序得到 jitted 输出
sudo bpftool prog dump jited tag e29cda32ba011d7f
我收到一条错误消息,报告如下:
错误:无法获取程序信息 (3):地址错误
问题:我做错了什么? XD
您肯定使用了从 Linux 4.20 或更早版本编译的 bpftool 版本,并遇到了 fixed in version 5.0 的错误。更新 bpftool,按标签转储程序应该又可以工作了。
附带说明一下,我通常使用程序 ID 或固定路径,因为我发现检索我想要的程序更有用。根据您的用例,标签可能很有意义,特别是如果您经常加载相同的程序而无需更改(因此您一定会保留相同的标签)并且没有固定它们。