为什么在Xcode 7中禁用"启用地址清理器"?

She*_*mus 10 clang address-sanitizer xcode7

我在新的Xcode 7中读到了Apple文档中的Runtime Sanitization ,所以我找了它,发现它被禁用了.我正在使用Xcode 7 GM种子.

当我进入方案>诊断选项卡的运行操作时,该Enable Address Sanitizer选项被禁用:

在此输入图像描述

关于其他选项如何被破坏有一些解释,但没有提到为什么禁用消毒选项:

一些诊断工具可以与其他工具结合使用; "诊断"窗格中可用的选项已启用和禁用,因为选择了不同的选项以帮助您选择选项组合.例如,启用地址清理程序和其他不兼容的工具已禁用且无法选择

查看AddresssanitizerClang 3.8文档,看起来它也可以通过添加标志来启用:-fsanitize=address.但是这个标志应该在构建设置中使用的地方是一个谜,并且有问题,因为它也作为方案中的复选框选项存在.

也找到了这个SO答案,但它相当复杂,可能已经过时,因为它早在2013年.

Mar*_*zyk 13

您目前无法同时使用Guard Malloc和Address Sanitizer.选中Enable Guard Malloc复选框将禁用Enable Address Sanitizer复选框.如果要使用Address Sanitizer,请取消选中Enable Guard Malloc复选框.

  • 启用以下选项之一可防止使用Address Sanitizer:启用Malloc Scribble,启用Malloc Guard Edge,启用Guard Malloc和Malloc Stack.应取消选中所有这些选项,以便激活Address Sanitizer. (2认同)
  • 为什么会这样? (2认同)