码迷,mamicode.com
首页 > 其他好文 > 详细

工具-infer,静态代码检测

时间:2015-07-06 10:00:49      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:

1.工具介绍

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

2.下载解压

   2.1 https://github.com/facebook/infer/releases

   2.2 tar xf infer-0.2.0.tar

3.环境搭建(具体可以查看解压包里面的INSTALL.md)

   3.1 下载安装opam(https://opam.ocaml.org/doc/Install.html)

   3.2 安装clang

  xcode-select --install

   3.3 安装OCaml

      opam init --comp=4.01.0  # (answer ‘y‘ to the question)

  eval `opam config env`

  opam install sawja.1.5 atdgen.1.5.0 javalib.2.3a extlib.1.5.4

4.安装infer

  cd infer

  ./update-fcp.sh && ../facebook-clang-plugin/clang/setup.sh && ./compile-fcp.sh

  make -C infer

  export PATH=`pwd`/infer/bin:$PATH

5.工程静态分析

  分析APP:

  infer -- xcodebuild -target <target name> -configuration <build configuration> -sdk <SDK>

 示例检测HelloWorldApp工程:

  infer -- xcodebuild -target HelloWorldApp -configuration Debug -sdk iphonesos8.3

   需要使用 --incremental (或 -i) 使得增量编译有结果输出:

  infer --incremental -- xcodebuild -target HelloWorldApp -configuration Debug -sdk iphonesos8.3

   或者在编译前清理:

  xcodebuild -target HelloWorldApp -configuration Debug -sdk iphonesos8.3 clean

    ok,到这你就会看到你想看的结果.

 

参考文档:http://infer.liaohuqiu.net/docs/getting-started.html

工具-infer,静态代码检测

标签:

原文地址:http://www.cnblogs.com/hlfme/p/4623551.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!