如何逐步看宏扩展?

时间:2016-02-18 03:31:00

标签: c++ c gcc c-preprocessor compiler-options

似乎Eclipse allows user to "see the expansion Step-by-Step" by pressing F2.

我喜欢这个很棒的功能。但我可以仅使用gccclang(或任何工具)执行相同操作吗?

-E选项使所有宏完全展开。所以我没有找到任何替代方法来逐步扩展宏。

Eclipse非常棒。我希望我不需要在任何地方安装它并一直启动它。

1 个答案:

答案 0 :(得分:1)

它是Eclipse内置的一项功能。如果这样的工具是作为GCC或Clang工具链的一部分提供的,那么Eclipse就没有必要实现它。可以使用MELT将此功能实现为GCC的扩展。 LLVM(其中Clang是其中的一部分)旨在使这样的事情变得微不足道。

有一件事你必须记住,宏观扩张是一项棘手的业务。在任何给定的时间点,宏定义可能会改变或根本不存在。从理论上讲,您可以使用gdb(GCC附带的调试器)逐步执行程序,以查看程序中不同点的宏扩展。如果你愿意,你可以尝试在Python中编写一个gdb插件。