【问题标题】:VStudio - Debug Mode vs. Release Mode and "Start without Debugging"VStudio - 调试模式与发布模式和“不调试就启动”
【发布时间】:2011-09-21 10:42:08
【问题描述】:

我正在使用 Visual Studio 2008 开发一个项目。

  1. 有一个下拉菜单供您选择调试/发布。
  2. 还有一个 Start without Debugging (CTRL + F5) 选项。

如果我选择调试模式但没有调试就启动会怎样?不是冲突吗?

这两个菜单有什么关系?

【问题讨论】:

标签: c# .net visual-studio visual-studio-2008 debugging


【解决方案1】:

这些特征是完全正交的。

构建的选择确实(默认情况下,您可以单独更改这些设置并创建新的构建目标):

  • 调试版本生成调试信息,禁用 IL 优化并定义 DEBUG 条件符号
  • 发布版本不生成调试信息,启用了 IL 优化并且未定义 DEBUG 符号

Run 与 Run without Debugger 确定调试器是否附加到已启动的进程上。默认情况下,从调试器开始也会禁用 JIT 优化。

【讨论】:

  • 谢谢。如果应用程序在调试或未调试的情况下启动,我如何以编程方式获取信息?
【解决方案2】:

调试模式影响编译;它会禁用优化并生成完整的调试符号。

Start without Debugging 只是正常运行 EXE,无需附加调试器。 (就像你在资源管理器中双击它一样)

【讨论】:

    【解决方案3】:

    如果您在没有调试的情况下开始,您将在调试模式之外的 VS localhost 服务器中运行您的项目。如果您选择调试,同样的事情也会发生,但您可以使用断点单步执行程序,并在运行时检查变量的值,还可以使用 VS 很酷的调试工具查看它们的内存管理情况。

    【讨论】:

      【解决方案4】:

      开始没有调试。 CTRL+F5 基本上运行可执行文件(没有调试器),具体取决于您通过下拉菜单选择的那个,即可执行文件的调试版本或发布版本。

      【讨论】:

        【解决方案5】:

        我的理解是,无论您的应用程序是如何编译的,从调试开始都会附加调试器。启动而不调试只是正常运行应用程序,不管它是如何编译的。

        我认为您在这种情况下混淆了编译和调试。您可以为 x86 编译它,但它是 x86 的事实对于调试目的并不重要。

        【讨论】:

          【解决方案6】:

          我刚刚意识到,当您使用 Start without Debugging 时,它会影响文件的创建和断点的工作。 创建文件和使用断点都不起作用。如果您需要这些东西来工作,请改用 Debug 选项。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-03-18
            • 1970-01-01
            • 2021-02-08
            • 2011-04-02
            • 2017-03-27
            • 1970-01-01
            • 2018-04-26
            • 1970-01-01
            相关资源
            最近更新 更多