iPhone开发技巧之工具篇(3)--- 使用clang静态解析Objective-C程序

这一回介绍一下 clang,一个用来静态解析程序的工具。

clang 是 LLVM 编译器项目中的其中之一。LLVM 支持 C/C++/Objective-C 语言,并有许多 Apple 的工程师加入这个项目。

静态解析程序

静态解析是指不用执行程序,而是从程序的代码构成来分析错误和预测问题。比如Java中的FindBugs,C++中的prefast等。通过这些工具可以一定程度的减少程序中的错误数量。

一般静态解析,分析以下几类问题:

  • 代码形式,名称是否违规
  • 警告容易出错的代码
  • 警告程序运行时可能出现问题的代码

比如容易引起内存泄漏的代码,会被其检测出,提示你修正。

用clang来解析iPhone程序

安装

这里 下载 clang, 并解压拷贝所有目录/文件到下面的目录,并设置该目录到PATH。

1
/usr/local/bin

下面是一些基本命令的说明

  • scan-build 解析使用的命令
  • ccc-analyzer gcc的实例
  • clang 解析时执行,也可作为编译器使用
  • sortedtable.js 解析报告的表示用JavaScript代码
使用

使用方法很简单,比如像下面:

1
2
 % cd MyProj
 % scan-build xcodebuild

当然,你也可以使用参数:

1
2
3
4
5
 % scan-build -o ./check --view xcodebuild -configuration Development
   :
 ** BUILD SUCCEEDED **
 scan-build: 1 bugs found.
 Viewing analysis results: './check/2010-04-11-2/index.html'

"-o" 是指定输出报告的位置(缺省是/tmp),"—view"是指解析完成后用浏览器打开报告。编译器 xcodebuild 的参数不变。

报告结果如下图所示:

 

clang

每次解析完成后,最好用下面的命令删除编译的结果,要不然会出问题。

1
xcodebuild clean
如果是比较新的 Xcode 版本, clang 已经集成到 Xcode 里了,可以通过项目设置中的
build --> 执行静态解析 来自动完成解析的过程。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值