【问题标题】:Xcode Difference between debug and releaseXcode 调试和发布的区别
【发布时间】:2011-07-13 08:06:36
【问题描述】:

Cocoa 应用程序的调试版本和发布版本之间有什么区别?我知道调试版本包含用于调试的附加信息,但还有什么不同?

【问题讨论】:

    标签: iphone debugging release


    【解决方案1】:

    发布版本更加优化以获得更好的性能和更小的尺寸。

    另外,从个人实践来看,我可以说在发布配置中打开更多警告以了解哪些方法未使用、哪些方法没有声明比较有符号/无符号以及其他有用的东西是很有用的。

    【讨论】:

    • 你为什么不在调试模式下打开这些警告呢?
    • 因为它们比功能更迂腐——很高兴为我提供无警告代码。
    • 我更喜欢在 Release 模式下使用无警告代码。它在那里比在调试模式下重要得多。如果我先在调试模式下修复错误,当我切换到发布模式时它们就会消失。更重要的是,诸如此类的“迂腐”问题表明您的代码存在设计缺陷——您需要在设计/调试时修复这些问题,而不是在您准备好测试/发布之后。
    • 他们很迂腐,因为他们想告诉你一些你应该解决的(潜在的)问题。如果您在开发时打开它们,大多数情况下它们在第一次出现时就很容易修复。
    【解决方案2】:

    我引用

    "这两者最大的区别在于: 在调试版本中,会发出完整的符号调试信息以帮助调试应用程序,并且不考虑代码优化。 在发布版本中,不会发出符号调试信息,并且优化了代码执行。 此外,由于符号信息不会在发布版本中发出,因此最终可执行文件的大小小于调试可执行文件。

    由于编译器优化或内存布局或初始化的差异,人们可能会在发布版本中看到有趣的错误。这些通常被称为发布 - 只有错误:)

    就执行速度而言,发布的可执行文件肯定会执行得更快,但这种差异并不总是很显着。”

    由 google 和用户 mcdeeis 提供 http://haacked.com/archive/2004/02/14/difference-between-debug-vs-release-build.aspx

    这是对所有编程语言的一个非常可靠的解释

    【讨论】:

    • 感谢罗斯亚历山大的链接,它解释了一些符号调试信息将在调试模式下生成,这究竟意味着什么,在哪里查看这些信息,对清除错误有用吗,如果可以,如何利用它来调试和清除错误,你能举例说明一下吗?
    • 符号调试信息:将二进制信息链接到源代码的信息。例如行号、变量名等。允许您参考源代码调试代码。就调试而言,这当然会有所帮助,但是您已经在使用此信息而没有意识到:) 我相信您可以在发布模式以及 Xcode 中的设置中打开此信息,但不要引用我的话 :P 因为我不是此刻在 Xcode 面前
    • :) 我可能需要学习编译器设计才能理解这些东西,无论如何,谢谢。:)
    • 没有理由在发布代码中包含调试符号。如果您使用过 Build&Archive,Xcode 管理器可以为您符号化崩溃日志。
    • developer.apple.com/tools/xcode/symbolizingcrashdumps.html 您可能会发现此链接很有帮助,fluchtpunkt 是正确的,但是您可以构建两个版本,一个版本和一个带有调试的版本。这有时很方便
    猜你喜欢
    • 1970-01-01
    • 2012-10-07
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    • 2016-12-16
    • 2010-09-16
    • 1970-01-01
    • 2010-09-26
    相关资源
    最近更新 更多