如何在Xcode中启用Clang Address Sanitizer?

3
1个回答

7

在Xcode 7中新增了Address Sanitizer作为一项新功能。

使用Runtime Sanitization > Enable Address Sanitizer标志来启用此选项。

git将会显示这个更改到你的.xcscheme文件中:

enableAddressSanitizer = "YES"

Xcode 7中的新功能文档中得知:

地址分配器。Xcode 7可以使用仪器构建您的应用程序,以便使用地址分配器捕获和调试内存损坏。

Objective-C和C代码容易受到内存损坏问题的影响,如堆栈和堆缓冲区溢出和使用后释放问题。当这些内存违规发生时,您的应用可能会不可预测地崩溃或显示奇怪的行为。内存损坏问题很难跟踪,因为崩溃和奇怪的行为通常很难复制,并且原因可能与问题的起源相去甚远。

Enable Address Sanitizer

您可以在构建方案中启用地址检查器。一旦启用,应用程序中添加的仪器将捕获内存违规行为,使您能够立即检查问题发生的位置。还提供其他诊断信息,如故障地址与堆上有效对象之间的关系以及分配/释放信息,这有助于您快速定位和修复问题。
地址检查器非常高效 - 足够快,可经常使用,也可与交互式应用程序一起使用。它支持 OS X、模拟器和 iOS 设备。

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