扩展宏以进行调试?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了扩展宏以进行调试?相关的知识,希望对你有一定的参考价值。

我是使用宏功能的新手,我知道在操作顺序方面它们的使用存在一些缺陷。有没有办法在预处理器经过它之后扩展宏,这样我才能看到它的样子?

在VS2017中,我已经尝试将处理器> C / C ++>预处理器>预处理创建到一个文件,该文件创建了一个*.i文件,但它大约有50k行,我似乎无法找到我的宏扩展到的位置。

编辑:我知道宏是坏消息,然而,我正在进入的代码库使用它们相当多,所以我试图更好地理解它们。

答案

在VS2017中,我尝试了处理器> C / C ++>预处理器>预处理到一个创建* .i文件的文件,但它大约有5万行,我似乎无法找到我的宏扩展到的位置。

您可以通过在使用宏的行之前声明一个虚拟变量来帮助自己。

EG

extern int dummyIntVariable;
MY_COMPLICATED_MACRO(arg1, arg2);

之后,您在.i文件中查找dummyIntVariable。它下面的一行将包含MY_COMPLICATED_MACRO扩展到的内容。

或者正如@Sneftel在评论中指出的那样,您可以使用任何旧字符串来帮助您浏览.i文件。

THIS IS A UNIQUE STRING
MY_COMPLICATED_MACRO(arg1, arg2);

由于文件只是预处理,因此也应该有效。

以上是关于扩展宏以进行调试?的主要内容,如果未能解决你的问题,请参考以下文章

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

VS Code中的调试怎么用

PHP代码-psysh调试代码片段工具

方便调试使用的代码片段

打开/Libre Office 宏以滚动视图到选择

访问宏以从 MS Outlook 读取电子邮件