转自:http://www.yifeiyang.net/iphone-development-skills-of-tool-papers-3-use-the-clang-static-analysis-objective-c-program/
clang 是 LLVM
编译器项目中的其中之一。LLVM 支持 C/C++/Objective-C 语言,并有许多 Apple 的工程师加入这个项目。
静态解析程序
静态解析是指不用执行程序,而是从程序的代码构成来分析错误和预测问题。比如Java中的FindBugs,C++中的prefast等。通过这些工具可以一定程度的减少程序中的错误数量。
一般静态解析,分析以下几类问题:
- 代码形式,名称是否违规
- 警告容易出错的代码
- 警告程序运行时可能出现问题的代码
比如容易引起内存泄漏的代码,会被其检测出,提示你修正。
用clang来解析iPhone程序
安装
在 这里
下载 clang, 并解压拷贝所有目录/文件到下面的目录,并设置该目录到PATH。
下面是一些基本命令的说明
- 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 的参数不变。
报告结果如下图所示:
每次解析完成后,最好用下面的命令删除编译的结果,要不然会出问题。
如果是比较新的 Xcode 版本, clang 已经集成到 Xcode 里了,可以通过项目设置中的
build --> 执行静态解析 来自动完成解析的过程。
分享到:
相关推荐
英文原文:https://solarianprogrammer.com/2012/03/21/clang-objective-c-windows/ 这个可以自用访问的。O(∩_∩)O哈哈~ 介于开源与自由精神,就不收费了,免费赠送,就当为这东西做推广了。也可在github上直接...
GN_C_COMPILER = "${MAPLE_ROOT}/tools/clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/clang" GN_CXX_COMPILER = "${MAPLE_ROOT}/tools/clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/clang++" GN_AR ...
libobjc2:旨在与Clang一起使用的Objective-C运行时库
2. 新增工具Clang静态分析器和GCD; 3. 如何使用UIKit框架开发精致的iOS应用程序; 4. 如何使用最新版本的Xcode。 无论你是初次接触Objective-C和Cocoa,还是已有丰富的C语言、C++或者Java编程经验,本书都能...
clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-18.04,官网下载实在是太慢了!!!
msys2-mingw-w64-x86_64-gcc-6.3.0-clang-llvm-3.9.1-windows-x86-64.zip.zip.004
clang+llvm-13.0.1-x86_64-linux-gnu-ubuntu-18.04 llvm 13.0.1 在 18.04系统下的安装包
具体内容为适用于jetson nano等arm64架构的嵌入式开发平台的的clang+llvm-7.0.1-aarch64-linux-gnu.tar.xz
Learn Objective-C on the Mac: For OS X and iOS, Second Edition updates a best selling book and is an extensive, newly updated guide to Objective-C. Objective-C is a powerful, object-oriented ...
clang+llvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz llvm 10.0 在 18.04系统下的安装包
与C / Objective-C / C ++一起使用的Clang格式emacs集成。 更新 添加提供声明添加对requrire语句的支持。 现在在init.el上可用(要求'clang格式)。 执行不带clang-format-binary的clang-format-xxx时,避免空...
Clang Build Analyzer使用Clang 9 -ftime-trace时的Clang C / C ++构建分析工具。 -ftime-trace编译器标志(请参阅Aras的博客文章)对于确定在编译一个源文件期间需要花费时间是很有用的。 使用Clang 9+ -ftime-...
clang-resource-filesystem-12.0.1-4.module_el8.5.0+1025+93159d6c.ppc64le.rpm官方离线安装包,亲测可用
20200513-clang和rvv benchmark-wangpeng.pdf
OpenArkCompiler所需clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz,上传大小限制,压缩包1。
msys2-mingw-w64-x86_64-gcc-6.3.0-clang-llvm-3.9.1-windows-x86-64.zip.zip.002
LLVM是构架编译器(compiler)的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time),对开发者保持开放,并兼容...
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装