gcc源代码中的函数

时间:2013-04-01 11:27:13

标签: gcc

任何人都可以告诉我gcc源代码中的哪个函数负责在C文件中查找宏并用实际值重新生成它?

我想知道函数,因为我必须通过对其进行更改来记录日志,因此最后我的日志文件将包含所有宏的使用位置及其行号。

2 个答案:

答案 0 :(得分:0)

在生成输出文件之前,它由预处理器完成。如果你想看看它在做什么,试试gcc -E

来自man gcc:

-E  Stop after the preprocessing stage; do not run the compiler proper.
    The output is in the form of preprocessed source code, which is sent to
    the standard output.

答案 1 :(得分:0)

我建议使用clang来完成此类任务。它有很好的文档记录,您无需更改其源代码,因为它可以通过插件系统进行扩展。

在您的情况下,您可以基于PPCallbacks类创建一个插件,并覆盖其MacroExpanded方法,以及您认为有用的任何其他方法。 This是一个简单的起点。