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