Cocoa 应用程序的调试和发布版本之间有什么区别? 我知道调试版本包含用于调试的附加信息,但还有什么不同?
最佳答案
调试版本将包含可供调试器使用的调试符号。发布版本通常不包含调试符号,因此如果您获得故障转储,您将获得的只是一堆十六进制地址,而不是有用的符号名称。
调试版本未使用优化进行编译( -O0
使用 gcc),而发布版本则使用优化进行编译(通常是 -O2
或 -O3
)。优化使调试变得非常非常困难。如果您尝试调试发布应用程序,调试器将变得非常困惑,因为汇编语句不再与 HLL 语句匹配、语句重新排序、函数内联、循环展开等。
#define NDEBUG
对于 Release模式,这会导致断言被删除。
关于cocoa - Xcode/ cocoa : What are the differences between debug and release builds?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/761628/