静态程序分析工具Infer

Infer 是一个静态程序分析工具,可以对 Java、C 和 Objective-C 程序进行分析,此工具是用 OCaml写成的。
Infer 最早部署在 Facebook 内部,用于发布移动应用之前对每一行代码进行分析,目前 Facebook 使用此工具分析所开发的 Android、iOS 应用,包括 Facebook Messenger、Instagram 和其他一些应用。 Infer 不仅仅用于移动应用程序的分析,还可以分析 C、Java 等不是 Android 系统的代码。 目前 Infer 着重于发现一些诸如空指针的访问、资源和内存的泄露等导致手机程序崩溃或性能严重下降的问题。

Infer 源自 2013 年收购的一家初创企业 Monoidics。Monoidics 本身就是根据最近的学术研究成果,特别是在 separation logic 和 bi-abduction。在 Facebook 内部,Infer 进行持续的迭代开发,并根据从开发者收集的反馈进行相应的调整。开源之后我们将继续开发 Infer,已造福其他使用者,并且我们可以与社区的其他开发者已开发出更好的程序检验技术为目标而为之奋斗。

 

项目基于Cocoapods组件管理, 编译命令为:

infer -- xcodebuild -workspace XXXX.xcworkspace -scheme XXXX -configuration Debug -sdk iphoneos10.2

 

官网文档 https://infer.liaohuqiu.net/docs/about-Infer.html

Github地址   https://github.com/facebook/infer

博客参考 http://www.jianshu.com/p/4667e36aadea

Infer bug types(错误类型)  http://fbinfer.com/docs/infer-bug-types.html#DIRECT_ATOMIC_PROPERTY_ACCESS

posted on 2017-03-30 10:57  Herooic  阅读(376)  评论(0编辑  收藏  举报

导航