Linux内核几个重要文件之System.map
What
什么是System.map文件?
System.map是编译内核时生成,它记录了文件内核中的符号列表,以及符号在内存中的虚拟地址,这里的符号可以理解成函数名和变量。System.map文件不是一成不变的,每次编译内核都会重新生成System.map文件。
下面我们简单看看System.map文件里面的内容
System.map文件内容
下面列出了我最近编译的6.8内核的System.map(前20行):
SHELL
00000000009f5a00 A __pecoff_data_raw_size
0000000000a78000 A __pecoff_data_virt_size
ffffffff80000000 T _start
ffffffff80000040 t pe_head_start
ffffffff80000044 t coff_header
ffffffff80000058 t optional_header
ffffffff80000070 t extra_header_fields
ffffffff800000f8 t section_table
ffffffff80001000 t efi_header_end
ffffffff80001000 T relocate_enable_mmu
ffffffff80001066 T secondary_start_sbi
ffffffff800010d8 T _start_kernel
ffffffff80002000 T __traceiter_initcall_level
ffffffff80002000 T _stext
ffffffff80002000 T _text
ffffffff8000203c T __probestub_initcall_level
ffffffff80002050 T __traceiter_initcall_start
ffffffff8000208c T __probestub_initcall_start
ffffffff800020a0 T __traceiter_initcall_finish
ffffffff800020e4 T __probestub_initcall_finish
... ...
System.map文件格式:地址 + 符号类型 + 符号名
符号类型说明: 大写为全局符号,小写为局部符号
A: 该符号的值是不能改变的,等于const
作者: Shell
链接: https://notes.z-dd.online/2024/03/21/Linux%E5%86%85%E6%A0%B8%E5%87%A0%E4%B8%AA%E9%87%8D%E8%A6%81%E6%96%87%E4%BB%B6%E4%B9%8BSystem.map/
来源: DD'Notes
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。