iPhone开发技巧之工具篇(3)--- 使用clang静态解析Objective-C程序
来源:互联网 发布:央视电视直播软件apk 编辑:程序博客网 时间:2024/05/22 02:49
这一回介绍一下 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代码
使用
使用方法很简单,比如像下面:
12
% cd MyProj % scan-build xcodebuild
当然,你也可以使用参数:
12345
% 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 的参数不变。
报告结果如下图所示:
每次解析完成后,最好用下面的命令删除编译的结果,要不然会出问题。
1
xcodebuild clean
如果是比较新的 Xcode 版本, clang 已经集成到 Xcode 里了,可以通过项目设置中的build --> 执行静态解析 来自动完成解析的过程。
- iPhone开发技巧之工具篇(3)--- 使用clang静态解析Objective-C程序
- iPhone开发技巧之工具篇(1)--- 将XIB文件转换为Objective-C源程序
- Objective-C开发中Clang的使用
- 使用clang命令行工具编译链接Objective-C应用程序
- 使用clang命令行工具编译链接Objective-C应用程序
- 使用clang命令行工具编译链接Objective-C应用程序
- iPhone开发技巧之工具篇(4)--- 使用afconvert转换WAV文件
- iPhone开发技巧之工具篇(4)--- 使用afconvert转换WAV文件
- iPhone开发技巧之网络篇(1)--- 解析XML
- iPhone开发技巧之网络篇(1)--- 解析XML
- iPhone开发技巧之调试篇(3)— 程序Crash后的调试技巧
- iPhone开发技巧之调试篇(3)— 程序Crash后的调试技巧
- iPhone开发技巧之调试篇(3)— 程序Crash后的调试技巧
- iPhone开发技巧之调试篇(3)— 程序Crash后的调试技巧
- 使用Xcode工具开发Objective-C程序
- iOS clang编译Objective-C程序
- iPhone开发之Objective-C类对象
- iphone开发基础之objective-c学习
- jquery的客户端校验:jquery-validation
- POJ 1833 排列的应用
- iPhone开发技巧之工具篇(2)--- Accessorizer自动化生成代码的工具
- InfoQ: Flash Builder 4.5高级版试用版免费高速下载(Windows)下载乌龙
- 高性能JAVA代码之_内存管理
- iPhone开发技巧之工具篇(3)--- 使用clang静态解析Objective-C程序
- Android下修改SeekBar样式
- iPhone开发技巧之工具篇(4)--- 使用afconvert转换WAV文件
- commons-fileupload-1.2.2实现java上传下载
- 郁闷
- oracle extract()截取时间值函数
- C#winform禁止多开
- android 学习8—— Activity布局初步(一)
- iPhone开发技巧之数据篇(1)--- 使用正则表达式