LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 671|回复: 0

请教elf文件中section 的 && lma && file off&

[复制链接]
发表于 2009-8-17 20:56:41 | 显示全部楼层 |阅读模式
如下所示中,对于每个段:
size表示这个section的大小
vma是这个section的运行地址,运行该elf文件时这个section在内存中的位置
lma是这个section的加载地址,具体作用不清楚,貌似不是很重要,load并不是从硬盘或者其他存储设备中加载到内存中,其作用还请知道的兄弟指教
file off从字面上来看时指该section在最后生成的elf文件中的偏移地址,但是看这些section的file off项,貌似也不是这样的。不知道这些值是怎么来的,在哪里控制这个值呢?
algn是对齐的意思,是为了实现字节对齐,但是2**5、2**2、2**0是什么含义呢?

# arm-unknown-linux-gnu-objdump -h /usr/u-boot-1.3.4/u-boot
/usr/u-boot-1.3.4/u-boot:     file format elf32-littlearm
Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         0001362c  33f80000  33f80000  00008000  2**5
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .rodata       0000078c  33f9362c  33f9362c  0001b62c  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  2 .rodata.str1.1 00003c90  33f93db8  33f93db8  0001bdb8  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  3 .data         00000a94  33f97a48  33f97a48  0001fa48  2**2
                  CONTENTS, ALLOC, LOAD, DATA
  4 .u_boot_cmd   00000450  33f984dc  33f984dc  000204dc  2**2
                  CONTENTS, ALLOC, LOAD, DATA
  5 .bss          00004794  33f9892c  33f9892c  0002092c  2**2
                  ALLOC
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表