XCode静态分析和AppCode项目检查

时间:2012-04-23 15:22:53

标签: ios static-analysis appcode

Xcode 4.3提供的静态分析器是否应该捕获或标记未解除分配的ivars?

我对iOS开发相对较新,我正在寻找一些启发:我的团队使用静态分析构建我们的项目,为XCode中的调试版本启用。为了评估AppCode的检查功能,我对整个项目进行了检查。

虽然我预计AppCode的检查会很好,但我没想到它会发现50多个没有正确解除分配的ivars实例,因为我们在Xcode中打开了静态分析。我们验证了AppCode已正确识别该问题,在一些情况下,这解决了已知的内存泄漏问题。

clang静态分析仪是否应该捕获这些?

我希望它因为某些项目设置未正确设置。正如我所期望的那样,clang静态分析仪至少会标记丢失的分配。

2 个答案:

答案 0 :(得分:1)

如果AppCode没有比Xcode更好的某些东西,那么市场就不会有太大的市场,所以我相信你至少会找到一些可以为你做点什么的领域Xcode没有。也许这就是其中一种情况。

另一方面,你所描述的那种泄漏应该很容易使用Instruments,所以它并不像Xcode中没有任何工具可以帮助你找到那种问题。 / p>

答案 1 :(得分:1)

从clang邮件列表中得到答案,clang可以解决这个问题。问题是随XCode一起提供的clang版本禁用了此功能!

  

您好,Seamus。 Clang确实支持这项检查,但确实如此   默认情况下禁用(可能是因为   http://llvm.org/bugs/show_bug.cgi?id=8838)。

我同意仪器会识别泄漏或泄漏,事实上它已经存在。然而,根据我的经验,缩小泄漏源或更可能泄漏的过程很少是很容易的。 AppCode标记的问题最终解决了团队无法缩小的两个已知泄漏。此外,它揭示了许多其他已知问题和未知问题的其他问题。

一旦clang更新,它也应该解决这些问题。