OK6410A 开发板 (八) 8 linux-5.11 OK6410A System.map 解析

System.map文件是Linux内核的重要组成部分,它包含了内核符号的链接地址和类型。当内核发生错误时,该文件用于地址到符号的转换,帮助诊断问题。文件内容分为多个部分,包括.text、.rodata、.init等段,用于驱动程序和其他工具如klogd、lsof等解析内核信息。System.map通常位于/boot/目录下。
摘要由CSDN通过智能技术生成
文件生成过程
NM=nm bash ./scripts/mksysmap vmlinux System.map
文件格式
arm-linux system.map内容格式为

链接地址 类型 符号
	
	地址为什么是 链接地址 ?
		
	类型 有哪些?
		https://blog.csdn.net/u011011827/article/details/69938645

文件用途
内核发生 oops , 会打印出 pc 的 内容 , 内容 为 地址.
klogd会街区内核的 oops 信息,1. 调用 syslogd 将其记录下来
	2. 利用 System.map 文件 进行 符号-地址 解析,转换 地址到 符号


一些驱动程序将使用System.map来解析符号

其他程序
	klogd
	lsof
	ps 
	dosemu
文件位置
生成在 顶层目录 下 
应该放置在
	/boot/System.map
	

文件内容
System.map 可以分为8个部分
00000018
...
c0004000 A swapper_pg_dir
...
c0008000 T _text
...
c0008000 T stext
...
c000807c t __create_page_tables
c0008150 t __enable_mmu
c00081d4
    1. contains .text.* sections, may also contain .rodata.* and/or .init.* sections
c0100000 T _stext
...
c0600000 R _etext
    1. contains .rodata.* sections

c0600000 R __start_rodata
...
c06b6000 R __end_rodata
c06b6648 R __start_unwind_idx
...
c06d43d8 R __stop_unwind_tab
    1. contains .init.* sections, but .init.text.* may be out of this range on some architectures.
c0700000 T __init_begin
...
c0800000 D __init_end
    1. contains .data.* sections, may also contain .rodata.* and/or .init.* sections.
c0800000 D _sdata
...
c088e548 D _edata
...

    1. contains BSS sections
c088e548 B __bss_start
...
c08c413c B __bss_stop
c08c413c B _end
fffe0000 T __eitcm_text
...
ffff1240 T vector_fiq
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值