分类: C/C++
2010-02-15 19:11:06
ELF 头 |
.text |
.rodata |
.data |
.bss |
.symtab |
.rel.text |
.rel.data |
.debug |
.line |
.strtab |
节头表 |
节 | 含义 |
.text | 已编译程序的机器代码,函数等被编译之后所对应的机器代码存放在此处 |
.rodata | 只读数据段,程序中的常量,及printf语句中的格式串和switch中的跳转表等只读数据 |
.data | 已经初始化的全局变量,注意c中的局部变量只有在运行是才会在栈上分配空间,它既不在.data段,也不在.bss 段 |
.bss | 未初始化的全局变量,他仅仅只是一个占位符,不占据实际的空间 |
.symtab | 符号表,存放在程序中被定义和引用的函数和全局变量的信息 |
.rel.text | .text节中需要进行重定位的单元的位置列表,当链接器把目标文件和其他文件相结合时,.text 节中的信息需要修改,这里包含了需要修改的信息 |
.rel.data | .data 节中需要进行重定位的单元的位置列表,一般而言, 被模块定义和引用的全局变量和外部定义函数可能需要重定位 |
.debug | 用于调试的调试符号表, gcc -g 才可能得到这张表 |
.line | 原始的c程序的行号和.text机器指令之间的映射,gcc -g 才可能得到这张表 |
.strtab | 一个字符串表,其中包括.systab和.debug 节中的符号表 |