Compilation GCC预处理器输出中的调试信息

Compilation GCC预处理器输出中的调试信息,compilation,c,gcc,compiler-construction,Compilation,C,Gcc,Compiler Construction,我正在检查GCC生成的预处理输出,我在使用-save temps标志生成的.I文件中看到了很多这样的输出: # 8 "/usr/include/i386-linux-gnu/gnu/stubs.h" 2 3 4 stubs.h的绝对路径前后的数字是什么意思?它似乎是由预处理器插入的某种调试信息,允许编译器发出引用此信息的错误消息。这些行不会影响程序本身,但每个数字具体是什么?根据前面的数字文件名是行号。文件名后面的数字是一个标志,表示以下内容: 1表示新文件的开始 2表示返回到某个文件(包括

我正在检查GCC生成的预处理输出,我在使用
-save temps
标志生成的
.I
文件中看到了很多这样的输出:

# 8 "/usr/include/i386-linux-gnu/gnu/stubs.h" 2 3 4
stubs.h的绝对路径前后的数字是什么意思?它似乎是由预处理器插入的某种调试信息,允许编译器发出引用此信息的错误消息。这些行不会影响程序本身,但每个数字具体是什么?

根据前面的数字文件名是行号。文件名后面的数字是一个标志,表示以下内容:

  • 1
    表示新文件的开始
  • 2
    表示返回到某个文件(包括另一个文件后)
  • 3
    表示以下文本来自系统头文件,因此应抑制某些警告
  • 4
    表示应将以下文本视为包装在隐式外部“C”块中
根据前面的编号,文件名是行号。文件名后面的数字是一个标志,表示以下内容:

  • 1
    表示新文件的开始
  • 2
    表示返回到某个文件(包括另一个文件后)
  • 3
    表示以下文本来自系统头文件,因此应抑制某些警告
  • 4
    表示应将以下文本视为包装在隐式外部“C”块中

这意味着什么行号,因为我看到许多文件都包含相同的行号。。。我在这里遗漏了一些明显的东西吗?
#1/usr/include/stdio.h“1 3 4
#28/usr/include/stdio.h”3 4
#1/usr/include/features.h”1 3 4
/usr/include/features.h”3 4
@ArunKumar基于您的标志,这只是显示一个新文件被删除了opened@ArunKumar不,完全一样<代码>#1“/usr/include/stdio.h”1 3 4
表示
/usr/include/stdio.h
已打开,我们处于行号1@ArunKumar取决于引用文件的上下文但行号,在我的示例中,
/usr/include/stdio.h
,它表示什么行号,因为我看到许多文件都包含相同的行号。。。我在这里遗漏了一些明显的东西吗?
#1/usr/include/stdio.h“1 3 4
#28/usr/include/stdio.h”3 4
#1/usr/include/features.h”1 3 4
/usr/include/features.h”3 4
@ArunKumar基于您的标志,这只是显示一个新文件被删除了opened@ArunKumar不,完全一样<代码>#1“/usr/include/stdio.h”1 3 4表示
/usr/include/stdio.h
已打开,我们处于行号1@ArunKumar取决于引用文件的上下文,但行号,在我的示例中为
/usr/include/stdio.h