在Visual Studio中,是否存在像_DEBUG这样的预处理器定义,用于运行带调试的发行版?

时间:2018-11-09 14:20:59

标签: visual-studio debugging c-preprocessor

在Visual Studio中,可以使用_DEBUG定义在“调试”和“发布”模式之间进行区分。但是,即使在发布模式下,也可以“开始调试”(F5)或“不进行调试开始”(Ctrl + F5)。是否存在可以区分这些的预处理器定义?

1 个答案:

答案 0 :(得分:0)

开始调试表示在调试器中启动程序

无需调试即可启动表示正常启动程序

由于您在构建程序后 选择了其中一项操作(在Debug或 发布),不能有任何预处理器宏或其他编译时差异 在动作之间。

您的程序的Debug版本可以在调试器中运行,也可以运行 一般。您的程序的Release版本也可以在调试器中运行,或者 一般。但是,如果您在调试器中运行Release版本,则调试器的 能够正确或根本不显示程序内部状态的能力 给定的点可能会因为缺少有效的调试信息而受阻。

看来您想要的是能够在调试器中有效运行Release版本。

没有什么可以阻止您将Release版本配置为生成 调试信息,例如Debug版本:这不是默认设置。参见How to: Debug a Release Build

这可能是临时措施。在此调试版本时 这样,由于发布模式的优化,您观察到的程序流有时可能会出现意外情况。