扩展宏以进行调试?
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);
由于文件只是预处理,因此也应该有效。
以上是关于扩展宏以进行调试?的主要内容,如果未能解决你的问题,请参考以下文章