最开始 register_kprobe 的时候,返回错误,一直注册不成功,且返回错误号为38
最后发现是一些kernel编译的配置没有打开导致的.
所以当你编译kernel之前请确保下面选项是打开支持的:
general setup
--> kprobes
CONFIG_OPTPROBES=y
CONFIG_PREEMPT=y
CONFIG_OPTPROBES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULES=y
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
CONFIG_DEBUG_INFO=yAnd one more config flag I needed specific to my platform:
你可以在system.map 文件找查找 是否有register_kprobe 函数,来确定你的编译是否正确。
解决kprobe注册失败问题
本文介绍了当遇到kprobe注册失败并返回错误号38时的解决方案。文章详细列举了必要的kernel配置项,如CONFIG_OPTPROBES=y、CONFIG_KALLSYMS_ALL=y等,并建议检查system.map文件确认register_kprobe函数的存在。
3455

被折叠的 条评论
为什么被折叠?



