bcc
bcc copied to clipboard
Failed to run tools/inject.py
~/bcc/tools# ./inject.py kmalloc 'SyS_mount()'
bpf: Failed to load program: Invalid argument
0: (bf) r6 = r1
1: (b7) r7 = 0
2: (63) *(u32 *)(r10 -4) = r7
last_idx 2 first_idx 0
regs=80 stack=0 before 1: (b7) r7 = 0
3: (18) r1 = 0xffff8ea627d41c00
5: (bf) r2 = r10
6: (07) r2 += -4
7: (85) call bpf_map_lookup_elem#1
8: (15) if r0 == 0x0 goto pc+1
R0_w=map_value(id=0,off=0,ks=4,vs=4,imm=0) R6_w=ctx(id=0,off=0,imm=0) R7_w=invP0 R10=fp0 fp-8=mmmm????
9: (61) r7 = *(u32 *)(r0 +0)
R0_w=map_value(id=0,off=0,ks=4,vs=4,imm=0) R6_w=ctx(id=0,off=0,imm=0) R7_w=invP0 R10=fp0 fp-8=mmmm????
10: (85) call bpf_get_current_pid_tgid#14
11: (63) *(u32 *)(r10 -8) = r0
12: (18) r1 = 0xffff8ecdb7d66000
14: (bf) r2 = r10
15: (07) r2 += -8
16: (85) call bpf_map_lookup_elem#1
17: (15) if r0 == 0x0 goto pc+20
R0_w=map_value(id=0,off=0,ks=4,vs=32,imm=0) R6=ctx(id=0,off=0,imm=0) R7=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R10=fp0 fp-8=mmmmmmmm
18: (67) r7 <<= 32
19: (77) r7 >>= 32
20: (18) r1 = 0xffffffff
22: (1d) if r7 == r1 goto pc+15
R0=map_value(id=0,off=0,ks=4,vs=32,imm=0) R1=inv4294967295 R6=ctx(id=0,off=0,imm=0) R7=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R10=fp0 fp-8=mmmmmmmm
23: (79) r1 = *(u64 *)(r0 +8)
R0=map_value(id=0,off=0,ks=4,vs=32,imm=0) R1_w=inv4294967295 R6=ctx(id=0,off=0,imm=0) R7=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R10=fp0 fp-8=mmmmmmmm
24: (55) if r1 != 0x1 goto pc+13
R0=map_value(id=0,off=0,ks=4,vs=32,imm=0) R1_w=inv1 R6=ctx(id=0,off=0,imm=0) R7=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R10=fp0 fp-8=mmmmmmmm
25: (61) r1 = *(u32 *)(r10 -4)
26: (63) *(u32 *)(r10 -12) = r1
27: (18) r1 = 0xffff8ea627d41c00
29: (bf) r2 = r10
30: (07) r2 += -12
31: (85) call bpf_map_lookup_elem#1
32: (15) if r0 == 0x0 goto pc+2
R0=map_value(id=0,off=0,ks=4,vs=4,imm=0) R6=ctx(id=0,off=0,imm=0) R7=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R10=fp0 fp-8=mmmmmmmm fp-16=mmmm????
33: (b7) r1 = 1
34: (c3) lock *(u32 *)(r0 +0) += r1
R0=map_value(id=0,off=0,ks=4,vs=4,imm=0) R1_w=inv1 R6=ctx(id=0,off=0,imm=0) R7=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R10=fp0 fp-8=mmmmmmmm fp-16=mmmm????
R0=map_value(id=0,off=0,ks=4,vs=4,imm=0) R1_w=inv1 R6=ctx(id=0,off=0,imm=0) R7=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R10=fp0 fp-8=mmmmmmmm fp-16=mmmm????
35: (bf) r1 = r6
36: (b7) r2 = -12
37: (85) call bpf_override_return#58
unknown func bpf_override_return#58
processed 34 insns (limit 1000000) max_states_per_insn 0 total_states 3 peak_states 3 mark_read 3
Traceback (most recent call last):
File "./inject.py", line 525, in <module>
Tool().run()
File "./inject.py", line 520, in run
self._attach_probes()
File "./inject.py", line 492, in _attach_probes
p.attach(self.bpf)
File "./inject.py", line 305, in attach
fn_name=self.func_name)
File "/usr/lib/python2.7/dist-packages/bcc/__init__.py", line 828, in attach_kprobe
fn = self.load_func(fn_name, BPF.KPROBE)
File "/usr/lib/python2.7/dist-packages/bcc/__init__.py", line 527, in load_func
(func_name, errstr))
Exception: Failed to load BPF program should_failslab_entry: Invalid argument
My kernel version is : 5.4.56.bsk.5-amd64
And I see that "unknown func bpf_override_return#58" in error message. Is it the problem?
You need to turn on CONFIG_BPF_KPROBE_OVERRIDE
.