似乎Eclipse allows user to "see the expansion Step-by-Step" by pressing F2.
我喜欢这个很棒的功能。但我可以仅使用gcc
或clang
(或任何工具)执行相同操作吗?
-E
选项使所有宏完全展开。所以我没有找到任何替代方法来逐步扩展宏。
Eclipse非常棒。我希望我不需要在任何地方安装它并一直启动它。
答案 0 :(得分:1)
它是Eclipse内置的一项功能。如果这样的工具是作为GCC或Clang工具链的一部分提供的,那么Eclipse就没有必要实现它。可以使用MELT将此功能实现为GCC的扩展。 LLVM(其中Clang是其中的一部分)旨在使这样的事情变得微不足道。
有一件事你必须记住,宏观扩张是一项棘手的业务。在任何给定的时间点,宏定义可能会改变或根本不存在。从理论上讲,您可以使用gdb
(GCC附带的调试器)逐步执行程序,以查看程序中不同点的宏扩展。如果你愿意,你可以尝试在Python中编写一个gdb
插件。