我只是想知道这两者之间的区别..我正在使用linux 3.16泛型内核。我知道这两个都是内核符号表。当我对这两个文件进行Kompare时,两者都具有相同的内容?那么两者兼得的需要是什么?
答案 0 :(得分:6)
/proc/kallsysms
包含动态加载模块的符号以及静态代码,system.map
是仅静态代码的符号表。
您无法确定系统上是否有system.map
可用。当kernel和system.map不匹配时,您会看到System.map does not match actual kernel
警告。所以在这种情况下/proc/kallsyms
是运行内核的符号。
System.map不仅对调试内核oopses有用。一些驱动程序需要System.map来解析符号,因为它们与内核头而不是glibc相关联。如果没有当前运行的特定内核的System.map,它们将无法正常工作。
的更多信息答案 1 :(得分:0)
简而言之,如果未启用kaslr,
system.map = $(nm vmlinux)
/proc/kallsysms = system.map + loaded modules's kallsyms