C 使用导出的内核符号注册模块加载跟踪点

C 使用导出的内核符号注册模块加载跟踪点,c,linux-kernel,C,Linux Kernel,在调试第三方调试工具时,我遇到了这段有问题的代码: tracepoint_probe_register((struct tracepoint *)kallsyms_lookup_name("__tracepoint_module_load"), hook_module_load, NULL); 此代码使其所在的可加载内核模块崩溃,因为在/proc/kallsyms中未定义内核符号\uuuu tracepoint\u module\u load 通常,这个符号是在内核的代码中定义的。 我可以看到

在调试第三方调试工具时,我遇到了这段有问题的代码:

tracepoint_probe_register((struct tracepoint *)kallsyms_lookup_name("__tracepoint_module_load"), hook_module_load, NULL);
此代码使其所在的可加载内核模块崩溃,因为在
/proc/kallsyms
中未定义内核符号
\uuuu tracepoint\u module\u load

通常,这个符号是在内核的代码中定义的。 我可以看到需要定义
CONFIG\u MODULES
,以便在该代码中定义
\u跟踪点\u module\u load


要在
/proc/kallsyms
中定义此符号,内核是否需要使用其他一些选项构建?
CONFIG\u KALLSYMS\u ALL
是必需的还是其他什么?

您使用哪个版本的内核?问题是否发生在v5.5-rc1(阅读:最新的普通版本/候选版本)上?内核为v4.14.151的Debian10。对