在Linux内核中,我想探究内核函数effective_prio()
。它定义为static
。
当我在kallsyms
中搜索它的符号时,找不到它。 kallsyms
是否具有内核功能的所有符号?如果不是,则不包括哪些符号?
最佳答案
函数没有出现在/proc/kallsyms
中的可能性有两种:
static
,并且编译器决定内联该函数(带有或不带有inline
关键字)#define
从编译中删除了一个函数,例如:#ifdef CONFIG_OPT
void foo(void) {
}
#endif
据我所知,如果函数未出现在
/proc/kallsyms
中,则不可能从模块中调用或探测它。但是,
/proc/kallsyms
包含内核的所有功能,而不仅仅是通过EXPORT_SYMBOL
/EXPORT_SYMBOL_GPL
导出的功能。关于c - kallsyms是否具有内核功能的所有符号?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20196636/