IDE中的发布模式和调试模式

5
我一直在想各种IDE(如Visual Studio、Netbeans等)中的不同“部署模式”(发布模式、调试模式等)是什么意思。我相信它们基于IDE支持的语言和平台有不同的含义,但标记项目为“Debug”与“Release”模式肯定有一个共同的基本意图。
这些模式之间有什么区别?IDE在编译/运行/部署时如何对待它们?您是否可以自定义自己的模式(例如“开发模式”,“QA模式”等)?如果可以,那么典型的自定义设置是什么?
谢谢!
4个回答

3

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

这是从像C这样的本地语言继承而来的,你运行你生成的代码。对于Java来说,这不是一个大问题,因为典型的用法是通过JVM进行额外的编译步骤。

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


谢谢!在对这个问题的另一个回答中,@Ralph还提到了发布模式会剥离所谓的“调试信息”。你(或其他人)能详细解释一下这些信息是什么以及包含了哪些内容吗?我们以NetBeans/Java为例。谢谢! - Pam
Java类的调试信息包括字节码的行号信息以及本地变量和参数的名称。即使没有源代码,在调试器中逐步执行时非常有用。 - Thorbjørn Ravn Andersen
如果我理解你的意思准确的话,你建议保留一个“Debug”版本的生产组件,这样即使在没有访问源代码的prod环境中,你仍然可以附加调试器并利用调试信息?谢谢! - Pam

3
在某些集成开发环境中(主要是C、C++),调试模式会将变量初始化为0。如果在调试模式下工作正常而发布模式下不正常,你需要记住这一点。

1
在大多数情况下,您可以使用此模式来打开和关闭一些调试信息(日志记录)。
就我所记得的而言:在 .net / Visual Studio 中,您甚至可以使用它来定义一些代码部分,这些代码部分根据由此模式控制的某些变量编译而成。@see "Design Mode" 预处理器指令

谢谢@Ralph!在发布模式下,生成的日志是唯一被省略的调试信息类型吗?还是还有其他“东西”?至于日志,例如NetBeans会产生哪些调试类型的日志以及这些日志中包含什么内容? - Pam

0

您可以在build.xml文件中添加debug="off"

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接