Section | 描述 |
ELF header | 一般信息. |
Program header table | 执行文件信息;只出现在执行文件中. |
Section data | Section的实际数据;一些ction有特殊的含义, 例如: symbol table和string table. |
Section headers | 不同ELF ction信息九的因数; 每个ction一个. |
ELF Header |
Program Header Table |
Section 1 Data …… Section n Data |
Section Header Table |
域 | 描述 |
e_ident | 16字节串: 4字节标识: '_ELF' 1字节class: 32位对象->1 1字节数据编码: litte-endian->1,big-endian->2 1字节版本: 当前版本->1 9字节零填充 |
e_type | 文件类型: 可重定位->1,可执行->2 |
e_machine | 目标体系结构: MC68000&ColdFire->4 |
e_version | 目标文件版本: 设定为1. |
e_entry | 程序入口地址. |
e_phoff | Program Header Table童话故事丑小鸭的文件偏移. |
e_shoff | Section Header Table的文件偏移. |
e_flags | 未使用. |
e_ehsize | ELF头大小. |
e_phentsize | Program Header Table中每条目的大小. |
e_phnum | Program Header Table中条目个数. |
e_shentsize | Section Header Table中每条目的大小. |
e_shnum | Section Header Table中条目个数. |
e_shstrndx | 包含Section名串表的条目的Section Header索引. |
域 | 描述 |
p_type | 段类型;linker只使用PT_LOAD(1). |
p_offt | 段raw数据的文件偏移. |
p_vaddr | 载入时段在内存中的驻留地址. |
p_paddr | 未使用. |
p_filesz | 段在文件中的大小;可以为0. |
p_memsz | 段在内存中的大小;可以为0. |
p_flags | 包含如下标志组合的Bit mask: PF_X (1) Execute PF_W (2) Write PF_R (4) Read |
p_align | 段在内存&文件中的对齐方式. |
域 | 江畔独步寻花古诗其一描述 |
sh_name | 指明ction名;可作为ction header string表的索引. |
sh_type | Section类型: SHT_NULL(0) inactive header SHT_PROGBITS(1) 程序定义的数据或代码 SHT_SYMTAB(2) 符号表 SHT_STRTAB(3) 串表 SHT_RELA(4) 重定位条目 SHT_NOBITS(8) 未初始化数据 SHT_COMDAT(12) 似SHT_PROGBITS |
sh_flags | 如下标志组合: SHF_WRITE(1) 包含可写数据 SHF_ALLOC(2) 包含分配数据 SHF_EXECINSTR(4) 包含可执行指令 |
sh_addr | 若ction将载入内存, ction的地址. |
sh_offt | 更年期焦虑症Section的raw数据的文件偏移;注意SHT_NOBIT ction没有raw数据,它将由操作系统初始化. |
Sh_size | Section大小; 即使SHT_NOBITS ction未占任何文件空间,也可能非零. |
sh_link | 连接到其他ction头的索引. SHT_COMDAT,SHT_NOBITS,SHT_PROGBITS, SHT_RELA 符号表; SHT_SYMTAB 串表. |
sh_info | 包含如下信息: SHT_RELA 重定位应用到该ction SHT_SYMTAB 第一个非本地符号索引 |
sh_addralign | 对齐要求. |
sh_entsize | 包含固定大小条目的ction的条目大小,如符号表. |
名称 | 内容 |
.text | 机器指令, 常值数据和常值串. |
.data | 注册税务师报名初始化数据. |
.sdata | 小初始化数据. |
.bss | 未初始化变量. |
.sbss | 小未初始化变量. |
.comment | Comments from #ident directives in C. |
.init | Main()函数之前执行的代码. |
.fini | 程序执行完成后执行的代码. |
.eini | .fini代码的最后指令;.init,.fini和eini ction应以序放入内存. |
.debug | DWARF格式的符号调试信息. |
.line | 符号调试的行号信息. |
.relaname | Section name的重定位信息. |
.shstrtab | Section名. |
.strtab | 串表for符号表中的符号. |
.symtab | 包含符号表. |
域 | 描述 |
r_offt | Area在当前ction的相对地址(to be patched with正确地址). |
r_info >> 8 | r_info的高24位是符号表的索引; 指向描述在r_offt引用的符号的条目. |
r_info & 255 | 低8位是重定位类型,用来描述寻址模式[绝对|相对,大小]. |
r_addend | 加到符号上的常数,用于计算放在重定位域的值. |
域 | 描述 |
st_name | 符号串表索引. 串表用于保存符号名. |
st_value | 符号值: 符号的ction索引为SHN_COMMON:符号对齐要求. 重定位文件:离ction起始位置的偏移. 执行文件:符号的地址. |
st_size | 对象大小. |
st_info >> 4 | 高4位定义符号的绑定[binding ]: STB_LOCAL (0) symbol is local to the file STB_GLOBAL (1) symbol is visible to all object files STB_WEAK (2) symbol is global with lower precedence |
st_info & 15 | 低4位定义符号的类型关于冬天的歌: STT_NOTYPE (0) 无类型 STT_OBJECT (1) 数据对象(变量) STT_FUNC (2) 函数 STT_SECTION (3) ction名 STT_FILE (4) 文件名 |
st_other | 未使用. |
st_shndx | 定义符号ctiond的索引.特殊的ction数包括: SHN_UNDEF (0x0000) 未定义ction SHN_ABS (0xfff1) 绝对, 不可重定位符号 SHN_COMMON (0xfff2) 不分配, 外部变量 |
本文发布于:2023-06-29 19:45:11,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/fan/89/1060537.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |