kprobe_events fetch arguments doesn't work on ARM
以下基于 kprobe_based 的事件示例运行良好:
1 | $ echo 'p:myprobe do_sys_open' > /sys/kernel/debug/tracing/kprobe_events |
但是,添加获取参数不起作用:
1 2 | $ echo 'p:myprobe do_sys_open dfd=%ax filename=%dx flags=%cx mode=+4($stack)' > /sys/kernel/debug/tracing/kprobe_events Invalid argument |
我认为问题出在
它们的含义是什么?我怎样才能使这段代码工作?
Note, which register/stack entry is assigned to each function argument depends on arch-specific ABI.
由于您看起来像是在使用arm(raspberry-pi 标签),您可以使用以下内容:
1 | $ echo 'p:myprobe do_sys_open dfd=%r0 filename=%r1 flags=%r2 mode=%r3' > /sys/kernel/debug/tracing/kprobe_events |