在GCC预处理器输出中调试信息
我正在检查GCC生成的预处理输出,我在使用-save-temps
标志生成的.i
文件中看到了很多这些:
# 8 "/usr/include/i386-linux-gnu/gnu/stubs.h" 2 3 4
stubs.h
的绝对路径之前和之后的数字是什么意思? 它似乎是由预处理器插入的某种调试信息,并允许编译器发出引用此信息的错误消息。 这些行不会影响程序本身,但每个数字具体是什么?
根据文档 ,文件名前面的数字是行号。 文件名后面的数字是一个标志,表示以下内容:
-
1
表示新文件的开始。 -
2
表示返回文件(包含另一个文件后)。 -
3
表示以下文本来自系统头文件,因此应禁止某些警告。 -
4
表示应将以下文本视为包含在隐式extern“C”块中。