Linux系统中System.map的解析

System.map文件在Linux系统中记录了内核代码的地址和符号信息。符号的标记如A(绝对地址)、B(BSS段)、C(公共符号)、D(初始化数据段)等,揭示了内存布局和数据定位。了解这些标记有助于深入理解内核运行时的行为。
摘要由CSDN通过智能技术生成

首先贴上一小段结果:

#sudo cat /boot/System.map-4.2.0-23-generic |grep init_task
ffffffff810b3290 T init_task_runnable_average
ffffffff8113dc80 T ftrace_graph_init_task
ffffffff8117a8a0 T perf_event_init_task
ffffffff81b63860 R __ksymtab_init_task
ffffffff81b803d0 r __kcrctab_init_task
ffffffff81b8cc04 r __kstrtab_init_task
ffffffff81c13500 D init_task
ffffffff81fc0518 b ext4_lazyinit_task

做一下简单说明。

第一列:地址,也就是内核中运行时候代码的地址

第二列:标记,大写代表全局,小写代表局部变量,可以通过输入“info binutils”或者“man nm”查看更详细的信息

第三列:符号名称(函数、全局变量等)

标记解释:

A    该符号的值是绝对的,在以后的链接过程中,不允许进行改变。这样的符号值,常常出现在中断向量表中,例如用符号来表示各个中断向量函数在中断向量表中的位置。
B    该符号的值出现在非初始化数据段(bss)中。例如,在一个文件中定义全局static int test。则该符号test的类型为b,位于bss section中。其值表示该符号在bss段中的偏移。一般而言,bss段

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值