【发布时间】:2016-01-10 19:45:55
【问题描述】:
echo 'p:myprobe do_sys_open dfd=%ax filename=%dx flags=%cx mode=+4($stack)' > /sys/kernel/debug/tracing/kprobe_events
根据我的理解,在X86_64 平台上,参数应该被传递到寄存器中(请参考X86_64 syscalls)。所以我认为添加探针应该是这样的:
echo 'p:myprobe do_sys_open dfd=%rdi filename=%rsi flags=%rdx mode=%rcx' > /sys/kernel/debug/tracing/kprobe_events
但是执行上面的语句,bash抱怨:
-bash: echo: write error: Invalid argument
所以我的问题是:如何在kprobe 中使用寄存器?哪些寄存器有效?
【问题讨论】:
标签: linux linux-kernel trace kprobe