Cocoa应用程序的调试和发布版本之间有什么区别? 我知道调试版本包含调试的其他信息,但还有什么不同?Xcode/Cocoa:调试和发布版本有什么区别?
15
A
回答
31
调试版本将包含调试器可以使用的调试符号。发布版本通常不包含调试符号,所以如果你得到一个崩溃转储,你将得到的是一堆十六进制地址,而不是有用的符号名称。
调试版本没有通过优化进行编译(-O0
with gcc),而发布版本通过优化进行编译(通常为-O2
或-O3
)。优化使得调试更加困难。如果你试图调试一个发布应用程序,调试器会变得非常困惑,因为汇编语句不再与HLL语句相匹配,语句得到重新排序,函数得到内联,循环得到展开等。
调试和发布版本也定义了不同的预处理器符号,并且某些代码是基于这些符号进行条件编译的(例如,数组边界检查,断言等),尽管这是高度依赖于应用程序的。一个典型的例子是#define NDEBUG
的发布模式,这会导致断言被删除。
0
在Tiger中,调试版本是“零关联”的。这是它仅针对你的环境进行了优化,并不是一个完整的构建。
相关问题
- 1. Qt调试版本和Qt发布版本有什么区别?
- 2. 什么的调试版本和发布版本,区别意味着和使用
- 3. “发布”和“发布”版本配置有什么区别?
- 4. .NET中“调试”和“发布”版本之间的主要区别是什么?
- 5. ScriptManagers的ScriptMode中调试和发布有什么区别?
- 6. 发布和迭代有什么区别?
- 7. 快照,候选版本和发行版有什么区别?
- 8. DLL包含什么?调试DLL和发布DLL有什么区别?
- 9. Sandcastle区分调试版本和发布版本?
- 10. 调试和编译有什么区别?
- 11. Live和IntelliTrace调试有什么区别?
- 12. 调试和发布之间的区别
- 13. VSE版本和Vyatta Core版本之间有什么区别AMI
- 14. “软件版本”和“平台版本”有什么区别?
- 15. “运行时版本”和“版本”有什么区别?
- 16. 免费版本和检查版本有什么区别?
- 17. “浏览器发布”和“程序发布”有什么区别?
- 18. C++动态发布库和调试库之间有什么区别?
- 19. .NET中的调试和发布二进制文件有什么区别?
- 20. jquery版本1,版本2和版本3版本有什么区别?
- 21. Json.Net版本有什么区别?
- 22. Linux内核版本有什么区别?
- 23. Qt Creator版本有什么区别?
- 24. Orientdb版本有什么区别?
- 25. Asp.net发布版本与调试版本
- 26. Coldfusion开发者版和企业版有什么区别?
- 27. 发布,调试版本和授权Google?
- 28. Visual Studio Express版本,microsoft.net和VS专业版有什么区别?
- 29. 从版本的工作区和最新版本之间有什么区别
- 30. MySQL发布版本之间的区别