编译流水线观察器
点选停止点,再逐步执行。观察 gcc 是怎样调度预处理器、编译器、汇编器和链接器的,以及每一步到底产生什么文件。
当前路径
- 输入
源代码
宏、条件编译和
hello.c#include还未展开。 - -E
预处理
展开头文件和宏,仍然是 C 文本。
hello.i - -S
编译
完成语义分析与优化,输出汇编文本。
hello.s - -c
汇编
得到 ELF 可重定位对象,符号地址未必已定。
hello.o - 链接
可执行文件
解析对象和库,写入入口、段与动态依赖。
hello
点选停止点,再逐步执行。观察 gcc 是怎样调度预处理器、编译器、汇编器和链接器的,以及每一步到底产生什么文件。
宏、条件编译和 #include 还未展开。
展开头文件和宏,仍然是 C 文本。
hello.i完成语义分析与优化,输出汇编文本。
hello.s得到 ELF 可重定位对象,符号地址未必已定。
hello.o解析对象和库,写入入口、段与动态依赖。
hello