【问题标题】:Release vs Debug Mode in IDEIDE 中的发布与调试模式
【发布时间】:2012-10-26 16:26:12
【问题描述】:

我一直想知道各种 IDE(Visual Studio、Netbeans 等)中有哪些不同的“部署模式”(发布模式、调试模式等)。我敢肯定,根据 IDE 支持的语言和平台,它们的含义不同,但必须有一个共同的潜在意图,将项目标记为“调试”而不是“发布”模式。

这些模式有什么区别? IDE 在编译/运行/部署时如何区别对待它们?有没有办法让您自定义自己的模式(“开发模式”、“QA 模式”等)?如果是这样,典型的自定义设置是什么?

谢谢!

【问题讨论】:

    标签: java ide release-management


    【解决方案1】:

    通常调试模式包含所有可能形式的调试信息,这些信息在发布模式中被剥离。

    这是从 C 等本地语言继承而来的,您可以在其中运行您生成的代码。 Java 的问题要小得多,因为典型的用法是通过 JVM 执行额外的编译步骤。

    即使对于发布模式构建,调试信息也可能非常方便,因为它允许 JVM 在堆栈跟踪等中提供更详细的信息。

    【讨论】:

    • 谢谢!在对这个问题的另一个回答中,@Ralph 还提到发布模式会去除这个所谓的“调试信息”。您(或其他任何人!)能否详细说明这些信息是什么以及它由什么组成?让我们以 NetBeans/Java 为例。谢谢!
    • 据我所知,Java 类的调试信息,字节码的行号信息,以及局部变量和参数的名称。即使没有源代码,在调试器中单步执行时也非常非常有用。
    • 因此,如果我理解正确,您建议保留生产组件的“调试”版本,这样,即使在您无法访问源代码的生产环境中,您仍然可以附加调试器到它并利用调试信息?谢谢!
    【解决方案2】:

    在某些 IDE(主要是 C、C++)中,调试模式还会将变量初始化为 0。如果某些东西在调试模式下工作而不是在发布模式下工作,您需要记住这一点。

    【讨论】:

      【解决方案3】:

      在大多数情况下,您可以使用此模式打开和关闭一些调试信息(日志记录)。

      据我记得:在 .net / Visual Studio 中,您甚至可以使用它来定义依赖于此模式控制的某些变量而编译的代码部分。 @见"Design Mode" preprocessor directive

      【讨论】:

      • 谢谢@Ralph!生成的日志是在发布模式中被忽略的唯一类型的调试信息,还是有更多的“东西”?至于日志,例如 NetBeans 会产生哪些调试类型的日志,这些日志中包含什么内容?
      【解决方案4】:

      您可以将debug="off" 放入build.xml 文件中。

      指示是否应使用调试信息编译源代码;默认关闭。

      【讨论】:

        猜你喜欢
        • 2011-03-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-02
        • 2011-09-02
        • 2013-07-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多