静态程序分析工具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组件管理, 编译命令为:
1 | 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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步