AdLint代码分析工具入门初步

来源:互联网 发布:手机听书软件排行 编辑:程序博客网 时间:2024/05/01 20:53
   参考链接:
   [[http://www.linuxpilot.net/software/kiji/2012030501AdLint][程式码分析工具AdLint公开]]
*** Adlint 介绍
   以往要发现软体产品的潜在问题,必须由开发者亲自检视程式码,AdLint可将此等功能自动化,从不同视点进行调査、总结出所谓的软体品质测量(Software Quality Metrics)。软体品质测量是计算软体质量的一套量度标准,例如要测量软体的是否可靠,便可以利用平均故障间隔(MTBF)表示软体的正常运作时间和发生问题时间的比例。开发者可利用AdLint在一定时间内建立的数据,从而观测软体品质测量数值的变化。


   AdLint由日本Ogis总研的开发者开发,并可配合同公司另一套开源程式码品质评估工具Adqua使用,将程式码品质评估过程可视化。AdLint拥有与程码编译工具式相同的工作界面,可以与Eclipse等跨平台工具一起使用,直接跳至程式码中有问题的部分。AdLint现时可输出多达597种警告讯息,可测定多达15种软体品质测量,并可在 Windows XP、Windows 7及各种Linux版本上运作,条件是必须安装Ruby 1.9.3-p0或以后的版本、及GNUMake 3以后的编译环境。AdLint采用GNU GPL version 3授权,可在Sourceforge网站下载。
*** Adlint安装
Adlint(1.0版 2012年2月29日公开)采用ruby编译,依赖于ruby1.9.3版本
**** Ruby1.9.3 编译安装
[[http://www.ruby-lang.org/zh_cn/][Ruby中文网]]
 
1. 下载Ruby1.9.3
下载地址:http://www.ruby-lang.org/zh_cn/downloads/ 下载1.9.3Pro
或者下载最新的源代码: 采用svn获取: svn co http://svn.ruby-lang.org/repos/ruby/trunk ruby
     2. 编译安装
参照源代码目录下的README文件:
需要提前安装libyaml:运行sudo apt-get install libyaml-dev
否则编译完成后运行sudo gem install adlint 会出现如下错误:
sudo gem install adlint
/usr/local/lib/ruby/1.9.1/yaml.rb:56:in `<top (required)>':
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
主要步骤:
1.如果没有configure文件,那么就用autoconf来自动生成
2.最简单的自动配置生成makefile,直接运行./configure,如果要进一步进行配置则运行./configure --help 察看配置器的帮助,根据自己的需要进行配置
3.生成makefile以后,运行make命令,编译当前源码
4.测试ruby解释器是否正常工作:运行:make test
4.安装到系统,运行sudo make install
**** Adlint安装
[[http://adlint.sourceforge.net/][Adlint官网]]
 
1. 下载Adlint
下载地址http://sourceforge.net/projects/adlint/
下载版本 为Adlint1.0.0版本
2. 使用ruby1.9.3安装Adlint
察看当前ruby版本:运行 : ruby --version
首先cd到下载adlint目录,假设下载文件为adlint.gem (实际上可以不用下载,因为gem install会自动帮你下载,只要ruby的库中存在这个文件)
运行如下命令: sudo gem install adlint


*** Adlint使用
参考:
[[http://adlint.sourceforge.net/pmwiki/upload.d/Main/users_guide_en.html][Adlint使用手册 英文版]]
**** 分析adlint自带的例程(intro_demo)
1.将adlint提供的例程拷贝到自己的工作目录下运行
 运行如下命令:% cp -r `adlint --prefix`/share/demo/intro_demo . 
 注意上面的"." 不要忘记, "`"不是"'",不要弄错了,最好就是直接复制上面的命令,上面的命令运行成功是否输出的
 如果有输出的话,估计是存在错误,需要重新编译,个人建议先将系统里面其他已经安装好的ruby全部卸载,然后再重新通过源代码编译安装,注意不要缺少libyaml这个库,否则还是运行出错
2.通过adlintize生成静态测试的配置文件
 运行命令
 % cd intro_demo
 % adlintize
 上面命令均没有输出,但是运行adlintize后会生成一些文件如下:
 GNUmakefile — Make file for GNU make describing the analysis procedure
 adlint_traits.yml — Traits file for customize AdLint analysis behavior
 adlint_pinit.h — Initial header file of specific project
 adlint_cinit.h — Initial header file of compiler
 adlint_all.sh — Shell script describing the analysis procedure
 adlint_all.bat — Windows batch file describing the analysis procedure
 adlint_files.txt — Analyzed file list for shell script and batch file
    3.运行adlint代码分析
 依赖于GNU make Version3或者以后的版本(make --version 查看版本号)
 运行如下命令:
 make verbose-all
 命令正常运行的话,输出如下:
 adlint -t adlint_traits.yml -o . -p 1 -v ./intro_demo.c
                ./intro_demo.c [fin] |============================| 0.321s
                    intro_demo [fin] |============================| 0.025s
0.760s user, 0.030s system, 00:00:00.79 total
 
      如果没有安装GNU Make,也可以运行如下命令进行静态测试分析:
 % adlint -v -t adlint_traits.yml -l adlint_files.txt
 其实上面的命令,分别对应的是当前目录下的adlint_all.bat(windows用),adlint_all.sh(linux用),上面命令输出如下
      intro_demo.c [fin] |============================| 0.513s
      intro_demo [fin] |============================| 0.058s
 0.790s user, 0.010s system, 00:00:00.80 total


 如果代码分析运行没有任何错误的话,下面的文件将会成功输出:
 intro_demo.i — Source files with pre-processed.
 intro_demo.c.met.csv — Code information of single module analysis and metric information
 intro_demo.c.msg.csv — Warning message list of single module analysis
 intro_demo.met.csv — Metric information of cross module analysis
 intro_demo.msg.csv — Warning message list of cross module analysis
原创粉丝点击