最开始 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 函数,来确定你的编译是否正确。