https://www.cnblogs.com/tsingke/p/9747141.html
C语言编译4个阶段:
1.预处理进行宏替换
2.编译器生成汇编文件.s
3.汇编器将汇编代码生成可重定位目标文件
4.连接器ld,将动态库一起打包生成可执行文件
程序里定义的局部变量不进入可执行文件中,运行时候才会分配内存,只是计入符号表,可用nm查看目标文件的符号清单
readelf -s a.out/a.o 查看符号表,每个未初始化的变量的大小放在了符号表中
https://bbs.csdn.net/topics/390613528
objdump -t 查看符号表,看见了text,data,bss段.
objdump -s a.out可以查看目标文件的16进制格式
objdump -d a.out可以列出文件的汇编形式
程序是怎么样跑起来的,第10章.