久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    Java靜態(tài)代碼分析工具Infer

     WindySky 2017-08-01

    作者:chszs,轉(zhuǎn)載需注明。博客主頁:http://blog.csdn.net/chszs

    一、Infer介紹

    Infer是Facebook最新開源的靜態(tài)程序分析工具,用于在發(fā)布移動應(yīng)用之前對代碼進行分析,找出潛在的問題。目前Facebook使用此工具分析Facebook的App,包括AndroidiOS、Facebook Messenger和Instagram等。
    這里寫圖片描述

    Facebook稱該工具幫助其每個月檢查出應(yīng)用潛在的數(shù)百個Bug,例如一些空指針訪問、資源和內(nèi)存泄漏等。Infer支持androidJavaios的C和Objective-C代碼。
    這里寫圖片描述

    Infer在GitHub的主頁: https://github.com/facebook/infer

    二、Infer使用

    1、頂層命令

    1. infer
      運行Infer的主要命令。它其實是一個python腳本。
    2. inferTest
      運行Infer的測試的Shell腳本。它使用Buck來運行測試。
      用法:inferTest {c, objc, java}
    3. inferTraceBugs
      是一個Python腳本,用于在Infer測試報告中流量錯誤、跟蹤錯誤。

    2、輔助命令

    InferJava:包含Java前端的二進制程序
    InferClang:包含Clang前端的二進制程序
    InferAnalyze:包含Infer后端(執(zhí)行分析)的二進制程序
    InferPrint:輸出分析結(jié)果(例如發(fā)現(xiàn)的bug列表等)的二進制程序
    inferJ:運行Java文件分析的命令
    BuckAnalyze:運行用Buck編譯的Java項目的分析命令
    inferlib.py:Python庫的其它腳本
    utils.py:python庫的其它腳本
    jwlib.py:Python庫的其它腳本

    三、Infer的安裝

    官方提供了預(yù)編譯好的Infer工具,但只支持Linux和MacOS兩個平臺。如果愿意使用Infer,直接下載使用即可。
    否則,需要下載源碼,自己編譯。

    1、下載Infer

    可以從Git倉庫下載Infer,命令:

    git clone https://github.com/facebook/infer.git
    

    說明:如果要分析C和objective-c,Infer還需要clang以及facebook-clang-plugin插件。
    facebook-clang-plugin插件見: https://github.com/facebook/facebook-clang-plugins
    如果只想分析Java/Android代碼,那么無需以上的依賴庫。

    2、Infer在Linux的安裝

    先決條件:需要Python 2.7以上版本

    安裝指令:
    (以下安裝過程在Debian 7、Ubuntu 14.04以及Ubuntu 12.04.4 LTS等系統(tǒng)中驗證通過)

    1. 安裝OCaml依賴

    # sudo apt-get update
    # sudo apt-get upgrade
    # sudo apt-get install git openjdk-7-jdk m4 zlib1g-dev python-software-properties build-essential libgmp-dev libmpfr-dev libmpc-dev unzip
    # wget https://github.com/ocaml/opam/releases/download/1.2.2/opam-1.2.2-x86_64-Linux -O opam
    # chmod +x opam
    # ./opam init --comp=4.01.0     # 然后在最后一個問題處按下“y”
    # eval `./opam config env`
    # ./opam install sawja.1.5 atdgen.1.5.0 javalib.2.3 extlib.1.5.4    # 然后在問題處按下“y”
    

    2. 如果需不要支持C和Objective-C代碼的靜態(tài)分析,繼續(xù)下面的指令:

    # cd infer
    # make -C  infer java
    # export PATH=`pwd`/infer/bin:$PATH
    

    注意:不支持Java 8

    3. 如果需要既支持Java代碼,又支持C和Objective-C代碼,那么不要執(zhí)行上面的第2步,改為執(zhí)行這里的第3步。

    假定以及安裝了4.7.2以上版本的GCC(如果OS是Ubuntu 12.04.4 LTS,那么你已經(jīng)安裝了gcc 4.8版和g++ 4.8版。
    接著執(zhí)行以下的指令:

    # sudo apt-get install python-software-properties
    # sudo add-apt-repository ppa:ubuntu-toolchain-r/test
    # sudo apt-get update
    # sudo apt-get install gcc-4.8 g++-4.8
    # sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8
    

    4. 然后繼續(xù)

    # cd infer
    # ./update-fcp.sh
    # ../facebook-clang-plugin/clang/setup.sh  # go have a coffee :)
    # ./compile-fcp.sh
    # make -C infer
    # export PATH=`pwd`/infer/bin:$PATH
    

    四、Infer的另一種安裝

    1、下載

    還可以直接下載二進制發(fā)行包
    Mac OS X版本的: https://github.com/facebook/infer/releases/download/v0.1.0/infer-osx-v0.1.0.tar.xz
    linux發(fā)行包: https://github.com/facebook/infer/releases/download/v0.1.0/infer-linux64-v0.1.0.tar.xz

    2、安裝

    解壓二進制發(fā)行包

    # tar xf infer-linux64-v0.1.0.tar.xz
    

    然后會建立infer-linux64-v0.1.0目錄,Infer主要的可執(zhí)行程序位于infer-linux64-v0.1.0/infer/infer/bin目錄。

    3、把Infer添加到PATH環(huán)境變量中

    # cd infer-linux64-v0.1.0 &&
    # echo "export PATH=\"\$PATH:`pwd`/infer/infer/bin\"" \ >> ~/.bash_profile &&
    # source ~/.bash_profile
    

      本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
      轉(zhuǎn)藏 分享 獻花(0

      0條評論

      發(fā)表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 最近中文字幕日韩有码| 久久精品免视看国产成人| 亚洲欧美日韩中文在线制服| 亚洲精品美女一区二区| 久9视频这里只有精品| 亚洲性无码AV在线欣赏网| 国色天香成人一区二区| AV在线亚洲欧洲日产一区二区| 国产欧美久久久精品影院| 亚洲 日本 欧洲 欧美 视频| 亚洲国产成人AⅤ毛片奶水| 亚洲一本二区偷拍精品| 久久精品国产久精国产一老狼 | 日韩亚洲精品中文字幕| 精品剧情V国产在线观看| 狠狠做五月深爱婷婷天天综合 | 熟妇人妻无码中文字幕老熟妇 | 国产91午夜福利精品| 精品麻豆国产色欲色欲色欲WWW | 亚洲精品日韩久久精品| 老熟妇性色老熟妇性| 精品国产迷系列在线观看| 精品无码三级在线观看视频| 国产成人一区二区三区免费| 亚洲AV综合色区无码另类小说| 国产男人的天堂在线视频| 色爱综合另类图片av| 16女下面流水不遮视频 | 极品少妇无套内射视频| 狠狠噜天天噜日日噜| 人妻系列无码专区免费| 国产suv精品一区二区四| 午夜色大片在线观看| 人妻系列无码专区免费 | 40岁大乳的熟妇在线观看| 亚洲精品亚洲人成在线观看| 国产边打电话边被躁视频| 精品中文人妻中文字幕| 天天在线看无码AV片| 精品一区二区不卡无码AV| 成人做受120秒试看试看视频|