我在新Xcode 7中的Apple docs中读到了运行时清理,所以我找了它,发现它被禁用了。我正在使用Xcode 7 GM种子。
当我进入该计划的Run行动时>诊断选项卡,Enable Address Sanitizer
选项已禁用:
关于其他选项如何被贬低有一些解释,但没有提到为什么禁用消毒选项:
某些诊断工具可与其他人一起使用; “诊断”窗格中可用的选项已启用和禁用,因为选择了不同的选项以帮助您选择选项组合。例如,启用地址清理程序和其他不兼容的工具已禁用且无法选择
查看Clang 3.8 documentation for Addresssanitizer,看起来也可以通过添加标记-fsanitize=address
来启用它。但是在构建设置中应该使用这个标志是一个谜,并且有问题,因为它也作为方案中的复选框选项存在。
同样发现了这个SO answer,但它相当复杂,而且可能已经过时,因为它早在2013年。
答案 0 :(得分:13)
您目前无法同时使用Guard Malloc和Address Sanitizer。选中Enable Guard Malloc复选框将禁用Enable Address Sanitizer复选框。如果要使用Address Sanitizer,请取消选中Enable Guard Malloc复选框。
答案 1 :(得分:0)
您还需要确保选择了Mac / iOS / TV模拟器,而不是设备。不支持监视模拟器。 (截至Xcode 9)