【问题标题】:How to see macro expansions step-by-step?如何逐步查看宏扩展?
【发布时间】:2016-05-30 01:51:27
【问题描述】:

好像Eclipse allows user to "see the expansion Step-by-Step" by pressing F2.

我喜欢这个很棒的功能。但是我可以只用gccclang(或任何工具)做同样的事情吗?

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

Eclipse 很大。我希望我不需要到处安装它并一直启动它。

【问题讨论】:

  • -E 选项适用于 gcc 。我不太明白你想要什么替代方案。
  • @ameyCU 我想要一种轻量级的方式来查看逐步扩展,就像 Eclipse 中的功能一样

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


【解决方案1】:

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

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

【讨论】:

  • maros 在编译时(或之前,由预处理器)完全展开,gdb 如何在运行时查看展开步骤。
猜你喜欢
  • 2012-09-23
  • 2010-11-02
  • 1970-01-01
  • 1970-01-01
  • 2015-04-19
  • 2022-01-16
  • 1970-01-01
  • 2020-11-01
  • 1970-01-01
相关资源
最近更新 更多