如何使用Makefile项目进行GCC调试转储?

时间:2013-02-06 11:15:24

标签: debugging gcc makefile

标题说得很好。我有一个使用Makefile的庞大项目。如何使用GCC进行项目范围的调试转储(例如,-fdump-tree-gimple)?

1 个答案:

答案 0 :(得分:1)

您必须传递-fdump-tree-gimple(实际上将任何pass-name而不是gimple,甚至all转储所有树遍)到每个编译器执行的编译字符串(即每次,您在源文件上调用gcc或使用-c选项调用gcc。在工作目录(通常是构建文件夹)中将显示任何源文件名的格式filename.c.XXX.gimple转储(XXX是像003这样的传递号,取决于gcc版本)。此外,您可能希望指定-dumpdir来收集单个转储目录中的所有转储,这可能很方便以避免混乱。

你将如何在makefile中完成 - 由你决定。您可以将其添加到$CFLAGS(最常见的解决方案,因为转储 是编译标志的一部分),或者创建特殊变量并传递它,或者在makefile中对其进行硬编码。 / p>

如果使用lto构建项目,则必须在第二个链接阶段传递这些标记(即添加到LDFLAGS左右)。