【问题标题】:In visual studio, is there a preprocessor definition like _DEBUG for running release with debugging?在 Visual Studio 中,是否有像 _DEBUG 这样的预处理器定义来运行带有调试的版本?
【发布时间】:2019-04-13 03:02:46
【问题描述】:

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

【问题讨论】:

  • 调试是构建后的一个步骤。系统在构建时不知道用户将来要按下哪个按钮。 (如果用户两者都做呢?)你是否建议按下调试按钮总是强制重建,并提示用户下一步可能会做什么?这并不是构建配置的真正工作方式。

标签: visual-studio debugging c-preprocessor


【解决方案1】:

开始调试意味着在调试器中启动你的程序。

Start without Debugging 表示正常启动您的程序。

因为您选择了这些操作之一在构建程序之后(在调试或 Release),不能有任何预处理宏或其他编译时差异 动作之间。

你的程序的Debug构建可以在调试器中运行,并且可以运行 一般。您的程序的发布版本也可以在调试器中运行,或者 一般。但是如果你在调试器中运行 Release 构建,调试器的 能够正确地呈现程序的内部状态,或者在任何时候都能够 由于缺乏有效的调试信息,给定点可能会受到阻碍。

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

没有什么可以阻止您配置发布版本以生成 调试信息,如 Debug 构建:它不是默认值。见How to: Debug a Release Build

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-05
    • 2011-04-16
    • 1970-01-01
    • 2012-10-28
    • 2010-10-09
    • 2019-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多