ARM ELF 文件格式常见段名称及自定义段
2013-06-23 00:22
841 查看
如果用arm-linux-gcc编译出来的适用于ARM架构的程序:
除了最常见的为 .text, .data, .bss 这 3 个段之外,还有其它的一些常见段,如下所示:
.strtab : String Table 字符串表,用于存储 ELF 文件中用到的各种字符串。
.symtab : Symbol Table 符号表,从这里可以所以文件中的各个符号。
.shstrtab : 是各个段的名称表,实际上是由各个段的名字组成的一个字符串数组。
.hash : 符号哈希表。
.debug_line : 调试时的行号表,即源代码行号与编译后指令的对应表。
.dynamic : 动态链接信息。
.debug : 调试信息。
.comment : 存放编译器版本信息,比如 "GCC:(GNU)4.2.0"。
.plt 和 .got : 动态链接的跳转表和全局入口表。
.init 和 .fini : 程序初始化和终结代码段。
.rodata1 : Read Only Data,只读数据段,存放字符串常量,全局 const 变量,该段和 .rodata 一样。
由上可见,这些段的名字前都有一个 '.' 点符号前缀,其义表示这些段的名字为系统所保留。应用程序可以使用非系统保留的名字作为自己的自定义段名,但是自定义的段名就不能使用 '.' 符号作为前缀,否则容易和系统保留的段名冲突。
除了最常见的为 .text, .data, .bss 这 3 个段之外,还有其它的一些常见段,如下所示:
.strtab : String Table 字符串表,用于存储 ELF 文件中用到的各种字符串。
.symtab : Symbol Table 符号表,从这里可以所以文件中的各个符号。
.shstrtab : 是各个段的名称表,实际上是由各个段的名字组成的一个字符串数组。
.hash : 符号哈希表。
.debug_line : 调试时的行号表,即源代码行号与编译后指令的对应表。
.dynamic : 动态链接信息。
.debug : 调试信息。
.comment : 存放编译器版本信息,比如 "GCC:(GNU)4.2.0"。
.plt 和 .got : 动态链接的跳转表和全局入口表。
.init 和 .fini : 程序初始化和终结代码段。
.rodata1 : Read Only Data,只读数据段,存放字符串常量,全局 const 变量,该段和 .rodata 一样。
由上可见,这些段的名字前都有一个 '.' 点符号前缀,其义表示这些段的名字为系统所保留。应用程序可以使用非系统保留的名字作为自己的自定义段名,但是自定义的段名就不能使用 '.' 符号作为前缀,否则容易和系统保留的段名冲突。
相关文章推荐
- ELF 文件格式常见段名称及自定义段
- ARM开发各种烧写文件格式说明(ELF、HEX、BIN)
- ARM-ELF文件格式与GNU ARM Linker机制
- ARM-ELF文件格式与GNU ARM Linker机制
- ARM-ELF文件格式与GNU ARM Linker机制
- ARM-ELF文件格式与GNU ARM Linker机制
- arm elf文件格式简单分析
- ARM-ELF文件格式与GNU ARM Linker机制
- ARM-ELF文件格式与GNU ARM Linker机制
- ELF格式可执行文件,更改符号名称要注意的地方
- 检查打开的文件是不是ELF格式的文件,如果是就输出节头字符串表的地址,并依次输出各节的名称,字符串
- ARM-ELF文件格式与GNU ARM Linker机制
- 常见音频文件格式的特点。
- 常见视频文件格式有哪些?
- 快速窥探elf格式文件文件的内部信息
- ELF和a.out文件格式的比较
- ELF文件格式详解
- ELF文件格式
- Linux下常见文件格式的压缩、解压小结
- elf文件格式总结