我正在尝试获取内核空间中现有符号的大小(通过/proc/kallsyms
检查),该符号不属于任何模块。
主要是我查看include/linux/kallsyms.h
和kernel/kallsyms.c
,唯一导出的函数是sprint_symbol
,它部分地给了我想要的东西,它将符号参数打印到缓冲区中。
解析缓冲区以获得符号大小在我看来并不是一个好的解决方案,但我真的无法弄清楚我怎么能以不同的方式做到这一点(我甚至尝试使用{{1}来“欺骗”内核对于kallsyms_lookup_name
或lookup_symbol_attrs
等函数,但无法解析它们。
还有其他方式,我错过了吗?