main.c
int test = 1; int main() { return 0; } int add() { return 0; }
main.o
反汇编可以看到多了.text节的反汇编,存储的是全局变量的初始化数值
main.o对比,text段后面多了00 00 00 01,这是data段,文件偏移为0x5c
节头表的data节,偏移为5c,大小为4
symbol table多了test,节头表索引为2,即data节,数值为0(猜测该数值为地址,一会通过elf文件求证)
main.elf
data节大小变为4,bss仍然没有
程序头的项目2的文件大小和内存大小都变为4了。
同时这里多了一个section到segment的映射,有两个segment,推测为RO,RW?第一个包含的section有text,第二个包含的section有data。
elf文件同时也多了全局变量的初始数值
test的数值为7000 0000,所以,符号表里的数值为符号的地址。