一、infer简介
1、引言
Infer 是Facebook 开源一款静态分析工具。
Infer 可以分析 Objective-C, Java 或者 C 代码,重点作用于分析APP(Android/iOS)项目,报告潜在的问题。
Infer 已经成为 Facebook 开发流程的一个环节,包括 Facebook Android 和 iOS 主客户端,Facebook Messenger, Instagram 在内的,以及其他影响亿万用户的手机应用
2、Infer捕捉的bug类型:
- Java中捕捉的bug类型
Resource leak
Null dereference
- C/OC中捕捉的bug类型
Resource leak
Memory leak
Null dereference
Premature nil termination argument
- 只在 OC中捕捉的bug类型
Retain cycle
Parameter not null checked
Ivar not null checked
3、infer基本原理
Infer 运行时,分为两个主要阶段:
-
捕获阶段
Infer 捕获编译命令,将文件翻译成 Infer 内部的中间语言。
这种翻译和编译类似,Infer 从编译过程获取信息,并进行翻译。这就是我们调用 Infer 时带上一个编译命令的原因了,比如:
`infer -- clang -c file.c`, `infer

最低0.47元/天 解锁文章
1505





