Clang 是一个 C、C++ 和 Objective-C 编程语言的编译器前端,采用了底层虚拟机(LLVM)作为其后端,提供一个GNU编译器套装(GCC)的替代品。克里斯·拉特纳,在苹果公司的赞助支持下进行开发,而源代码授权是使用类 BSD 的开源授权。
Clang静态分析和Instruments来剖析代码有一些不同,Clang更致力于在编译的过程中通过自身的一套判断机制来找出代码中潜在的隐患。
在XCode 3.2之后的版本里,Clang已经被集成进来,Static Analysis 是基于 Clang 的非常好的静态代码分析工具。可以从xcode直接运行Static Analysis 分析器。
Static Analysis 优点:
1、使用操作容易。
2、能够在编码阶段,开发自行进行代码检查。早期发现代码隐患。
3、直接分析源代码来发现程序中的错误,而不需要实际运行。
4、自动检测objective-C程序中的BUG,发现内存泄露和其它问题。
5、内存问题发现越早,解决的代价就越小。
使用方法:
1、确保你的程序没有被编译过(编译过了就使用Clean all targets清除编译)
2、点击Product > Analyze如下图:
3、如果你的程序代码有问题,在编译完成之后,右下角的原来提示warning 和 error的地方现在变成了这样:
4、现在你可以像解决以前的warning 或者 error一样,对提示的地方点进去。
5、可能会存在问题的一些情况:
各处内存泄漏:
对象引用隐患(内存已释放可能又被使用了)