【问题标题】:Is there a way to debug preprocessed code in VisualStudio有没有办法在 Visual Studio 中调试预处理代码
【发布时间】:2011-04-16 16:46:46
【问题描述】:

我有一个要调试的可视化 C++ 项目。但是,实际上有几个函数是通过宏扩展生成的(例如特定属性的 set##Name)。因此,在调试时,我无法遵循这些生成函数中的执行流程。

我必须使用 /P 标志然后调试预处理代码吗?

【问题讨论】:

    标签: visual-studio visual-c++ preprocessor


    【解决方案1】:

    您必须在其他项目中使用/P 标志预处理代码(或在命令行上,如果您想拼出所有包含和库文件夹),然后编译此预处理代码而不是源代码在您的实际项目中创建文件。然后你可以通过它进行调试。

    也就是说,一旦你使用它,你就不能消除宏吗?使用constinline 和模板,我很少觉得需要求助于宏,如果我这样做了,它通常是非常小的、孤立的代码片段。这些要么太琐碎以至于需要调试,要么我手动将宏的一个实例替换为它生成的代码并对其进行调试。 (然而,这在过去十年中可能发生在我身上三次。)

    【讨论】:

    • 好的,我要试试这个选项。我不想,但似乎我别无选择。我无法消除宏,我可以访问代码,但我没有修改它的凭据。
    • 内联如何消除对宏的需求?例如,我一直在查看 log4cxx 中的宏,这些宏会生成几行样板代码。如何用const、inline或templates替换宏一行的效率?
    猜你喜欢
    • 2017-07-28
    • 2019-06-29
    • 2020-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-04
    相关资源
    最近更新 更多