【发布时间】:2020-07-12 10:57:32
【问题描述】:
出于工具的目的,我正在尝试附加到 kprobe 事件,但我对 kprobe 事件不太熟悉。我读过/sys/kernel/debug/kprobes/list 中提供了已注册kprobes 的列表,但是sudo less /sys/kernel/debug/krpobes/list 显示没有注册kprobes。我已经确认 krpobes/enabled 是 1。我做错了什么吗?
【问题讨论】:
出于工具的目的,我正在尝试附加到 kprobe 事件,但我对 kprobe 事件不太熟悉。我读过/sys/kernel/debug/kprobes/list 中提供了已注册kprobes 的列表,但是sudo less /sys/kernel/debug/krpobes/list 显示没有注册kprobes。我已经确认 krpobes/enabled 是 1。我做错了什么吗?
【问题讨论】:
/sys/kernel/debug/kprobes/list 有已注册的 kprobe 列表,不可用的 kprobe 挂钩(参见 the kprobes documentation 的 The kprobes debugfs interface 部分)。
我认为某处没有可用的 kprobe 钩子列表。但是,/sys/kernel/debug/tracing/available_filter_functions 有一个 可通过 ftrace 获得的 kprobe 钩子列表。大多数可用的功能应该在那里。否则,您可以查看/proc/kallsyms 中的完整公开函数列表,并验证它们未在/sys/kernel/debug/krpobes/blacklist 中列入黑名单。如果函数不在/proc/kallsyms 中,很可能是因为在编译时被内联了。
我做错了什么?
所以,不,没什么可怕的:-)
【讨论】: