我是iphone和objective-c开发的新手,想问一下Clang Static Analyzer是否足以摆脱内存泄漏?我个人发现xcode“Leaks”工具相当难以使用,除了我看过一些文章,它会读到它总会显示内存泄漏,即使没有任何真正的泄漏。
如果我没有来自clang分析仪的任何警告,是否意味着我没有任何内存泄漏?或者我需要以其他方式检查它?
你怎么看? 非常感谢你。答案 0 :(得分:3)
不,不是。 CSA是一个静态分析工具,意味着它只能捕获编译时可以推理的内容。为此,它还不完美,远非如此。它绝对不能替代仪器。但是,CSA可以帮助提醒您规则中的内容以及其他潜在问题。
答案 1 :(得分:2)
如果您使用内置的Build and Analyze,您可以通过下载真实的扫描构建并启用所有检查来获得更好的结果
http://www.loufranco.com/blog/files/scan-build-better-than-build-analyze.html
但是,它仍然不够。您需要使用运行时分析来检查泄漏。如果您遵循非常简单的alloc / retain / release规则,您可能能够使用它(或者如此接近,Leaks工具变得更容易处理)。
答案 2 :(得分:1)
不,静态分析仪是方便使用的工具之一,但你不应该单独依赖它。
仪器,特别是泄漏和内存分配工具是查找泄漏的好方法。内存分配工具可以帮助您找到泄漏不能泄漏,因为它可以显示整体内存使用情况,如果您注意到它上升但是在完成任务后永远不会崩溃,您可以开始寻找可能的泄漏......