你如何在Xcode中启用Clang Address Sanitizer?

时间:2015-08-22 00:01:18

标签: xcode clang address-sanitizer

正如在2015年WWDC上宣布的那样,Clang Address Sanitizer正被带到Xcode和OS X.

Session 413: Advanced Debugging and the Address Sanitizer

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

1 个答案:

答案 0 :(得分:2)

地址Sanitizer已添加为Xcode 7中的新功能。

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

然后, git会向您的.xcscheme文件显示此更改:

enableAddressSanitizer = "YES"

来自New Features in Xcode 7文件:

  

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

     

Objective-C和C代码易受内存损坏问题的影响,例如堆栈和堆缓冲区溢出以及免费后使用问题。当发生这些内存违规时,您的应用程序可能会无法预测崩溃或显示奇怪的行为。内存损坏问题很难追查,因为崩溃和奇怪的行为往往难以重现,原因可能远不是问题的根源。

Enable Address Sanitizer

  

您在构建方案中启用了地址清理程序。启用后,应用程序内置了添加的工具以立即捕获内存冲突,使您能够在发生问题的位置检查问题。还提供了其他诊断信息,例如故障地址与堆上的有效对象之间的关系以及分配/解除分配信息,这有助于您快速查明并修复问题。

     

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