在ELF文件规范中,一个可执行目标文件能够包含一个节头表,由节头表对文件中的节进行定义。在ARM的ELF文件中,所有的可执行代码至少具有两个节,除非激活连接器时附带了“- nodebug"参数。这两个节分别是:
1、符号表节(symbol table section)
符号表节具有以下属性:
.sh _ name:“.symtab"
.sh_type: SHT_SYMTAB
.sh _ addr: 0(指示这不是本映像文件的部分)
说明:. symtab是。h - name的属性值,它表示此节包含了一个符号表。
2、字符串表节(string table section)
字符串表节具有以下属性:
.sh _ name:“.strtab"
.sh_type: SHT_STRTAB
.sh _ addr: 0(指示这不是本映像文件的部分)
说明:. strtab是sh - name的属性值,它表示此节包含了字符串。
此外,还有节名称字符串表和若干调试节。如果一个可执行代码包含了源代码级别的调试信息,则它还会拥有几个调试节。
3、节名称字符串表(section name string table)
节名称字符串表保存了所有节的文字名称,它具有以下属性:
.sh _ name:“.shstrtab"
.sh_type: SHT_STRTAB
.sh _ addr: 0(指示这不是本映像文件的部分)
4、调试节(debugging section)
ARM的可执行ELF文件支持三种类型的调试信息,这三种调试信息都存放在调试节里。可执行ELF文件的连接器通过检查该目标代码的节表就能够分辨出这三种调试信息。
.ASD调试表组。它向后兼容ARM的符号调试器。ASD调试信息存储在可执行目标代码的名为.asd的节内。
.DWARF V1.0版本。如表6-2所示,当DWARF V1.0版本的调试信息被连接器包含
在ELF的可执行代码之内时,该文件将含有下面的ELF节。每一个节都有一个节头部表的表项(入口)。
文章由供应商小编整理,转载请注明文章来源出处,谢谢合作!
阅读(431) | 评论(0) | 转发(0) |