同时拥有 System.map 文件和 /proc/kallsyms 有什么需要?
What is the need of having both System.map file and /proc/kallsyms?
我只想知道System.map
文件和/proc/kallsyms
.[=18=的区别]
我正在使用 Linux 3.16 通用内核。我知道两者都是内核符号 table.. 当我对这些文件进行比较时,两者都具有相同的内容。
那么两者有什么必要呢?
/proc/kallsyms
有动态加载模块的符号和静态代码,System.map
是只有静态代码的符号表。
您无法确定 System.map
是否在您的系统上可用。当内核和 system.map 不匹配时,您会不断看到 System.map does not match actual kernel
警告。所以在那种情况下/proc/kallsyms
是运行内核的符号。
System.map 不仅对调试内核 oops 有用。一些驱动程序需要 System.map 来解析符号,因为它们链接到内核头文件而不是 glibc)。如果当前 运行.
的特定内核没有 System.map,它们将无法正常工作
的更多信息
简而言之,如果没有开启kaslr,
system.map = $(nm vmlinux)
/proc/kallsysms = system.map + loaded modules's kallsyms
我只想知道System.map
文件和/proc/kallsyms
.[=18=的区别]
我正在使用 Linux 3.16 通用内核。我知道两者都是内核符号 table.. 当我对这些文件进行比较时,两者都具有相同的内容。
那么两者有什么必要呢?
/proc/kallsyms
有动态加载模块的符号和静态代码,System.map
是只有静态代码的符号表。
您无法确定 System.map
是否在您的系统上可用。当内核和 system.map 不匹配时,您会不断看到 System.map does not match actual kernel
警告。所以在那种情况下/proc/kallsyms
是运行内核的符号。
System.map 不仅对调试内核 oops 有用。一些驱动程序需要 System.map 来解析符号,因为它们链接到内核头文件而不是 glibc)。如果当前 运行.
的特定内核没有 System.map,它们将无法正常工作 的更多信息简而言之,如果没有开启kaslr,
system.map = $(nm vmlinux)
/proc/kallsysms = system.map + loaded modules's kallsyms