1

为了工具的目的,我正在尝试附加到 kprobe 事件,但我对 kprobe 事件不太熟悉。我读过注册的 kprobes 列表可用,/sys/kernel/debug/kprobes/list但是sudo less /sys/kernel/debug/krpobes/list显示没有注册的 kprobes。我已经确认 krpobes/enabled 是 1。我做错了什么吗?

4

1 回答 1

2

/sys/kernel/debug/kprobes/list有已注册的 kprobe 列表,没有可用的 kprobe 钩子(参见kprobes 文档The kprobes debugfs interface的部分)。

我认为某处没有可用的 kprobe 钩子列表。但是,/sys/kernel/debug/tracing/available_filter_functions有一个通过 ftrace 可用的 kprobe 钩子列表。大多数可用的功能应该在那里。否则,您可以检查 中的完整公开函数列表,/proc/kallsyms并验证它们没有被列入黑名单/sys/kernel/debug/krpobes/blacklist。如果一个函数不在 中/proc/kallsyms,很可能是因为 is 在编译时被内联了。

我做错了什么可怕的事情吗?

所以,不,没什么可怕的:-)

于 2020-04-01T04:15:31.883 回答