追踪包含文件(包括链)

时间:2014-08-05 04:09:18

标签: c linux include busybox

有时我想跟踪包含文件,直到定义某种类型的行。 例如,在busybox中添加命令后,我发现添加的源包括内核头文件,其中包含其他头文件。但不同于linux构建过程,其中配置定义变量(CONFIG _...)用于选择正确的头文件(并在头文件中选择正确的行),在busybox构建中,这些变量未设置,因此正在选择头文件我想,不知道了。

所以我想跟踪头文件以查看例如类型u32是如何键入的以及如何在构建期间选择正确的头文件。如果我了解这一点,我可以在busybox构建过程中添加一些配置,以便在最终构建中选择正确的linux头文件和行。

有没有找到包含文件包含路径的有效方法?我尝试将-M添加到CPPFLAGS,同时制作.o文件以查看正在包含的文件,但没有相关的信息输出。

编辑:我使用grep查找类型定义类型的文件,然后更改每个候选文件的类型名称以查找最终使用的头文件。然后使用grep查找包含该文件的文件。并更改了包含文件名以了解真实的包含文件(包含文件时真实包含错误,因为文件名已更改。)。我重复了这一点,这样我就可以跟踪包含路径了。也许这是唯一的方法?

1 个答案:

答案 0 :(得分:0)

要查看typedef名称的实际类型,您需要查看预处理器的输出:

https://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html

gcc上的选项是-E。此输出还将递归地包含头文件中的内容。