3

正如在 WWDC 2015 上宣布的那样,Clang Address Sanitizer 正在被引入 Xcode 和 OS X。

会话 413:高级调试和地址清理程序

如何为 Xcode 项目启用 Clang Address Sanitizer?

4

1 回答 1

7

Address Sanitizer 已作为 Xcode 7 中的新功能添加。

在您的方案中使用Runtime Sanitization>标志来启用该选项。Enable Address Sanitizer

然后 git 将显示此更改到您的.xcscheme文件:

enableAddressSanitizer = "YES"

来自Xcode 7 中的新功能文档:

地址消毒剂。Xcode 7 可以使用旨在使用地址清理程序捕获和调试内存损坏的工具来构建您的应用程序。

Objective-C 和 C 代码容易受到内存损坏问题的影响,例如堆栈和堆缓冲区溢出以及释放后使用问题。当这些内存违规发生时,您的应用程序可能会意外崩溃或显示奇怪的行为。内存损坏问题很难追踪,因为崩溃和奇怪的行为通常很难重现,而且原因可能与问题的根源相去甚远。

启用地址清理程序

您在构建方案中启用地址清理程序。启用后,应用程序中会内置添加的检测以立即捕获内存违规,使您能够在问题发生的地方检查问题。还提供了其他诊断信息,例如错误地址与堆上有效对象之间的关系以及分配/释放信息,可帮助您快速定位和修复问题。

地址清理程序很有效——速度足够快,可以定期使用,也可以与交互式应用程序一起使用。它在 OS X、模拟器和 iOS 设备上受支持。

于 2015-08-22T00:01:18.213 回答