OCLint:静态代码分析工具(C、C++和Objective-C)

oclint

OCLint是一个静态代码分析工具,通过检查C、C++和Objective-C代码提高程序质量,减少瑕疵,同时搜索潜在的问题。

 

主要功能

  • 可能的错误 – 空的ifelse/try/catch/finally语句
  • 未使用的代码 – 未使用的本地变量和参数
  • 复杂的代码 – 高秩复杂度、NPath(N路径)复杂度和大量非注释代码块(NCSS – Non Commenting Source Statements)
  • 冗余的代码 – 冗余的if语句和无效的括号
  • 代码异味 – 过长的函数和参数列表
  • 不良设计 – 逻辑颠倒和参数重复赋值
  • ……

静态代码分析是一个重要的技术,能够检测那些编译器注意不到的缺陷。OCLint自动完成如下高级检查功能:

  • 依靠源代码的抽象语法树达到更高的精确性和有效性;极大的减少误检,避免有效的结果沉没在误检消息中。
  • 在运行时也能动态向系统中加载检测规则。
  • 灵活性和可扩展配置确保用户可以自定义检测工具的功能。
  • 命令行调用有助于在开发时对代码进行连续的整合和检查,可以及早的修复技术缺陷,降低维护成本。

最新版本

OCLint是一个在Linux和Mac OS X平台运行的独立工具。用户可以在随后的网站下载最新版本:https://github.com/oclint/oclint/releases

  • 版本:0.11
  • 发布日期:2016年9月18日
  • License:Modified BSD License

安装

OCLint最终为预编译二进制版本和本地编译包。文件树和下面相似:

可以直接从bin文件夹中调用OCLint,不需要安装。

为了简化调用过程,建议将OCLint的bin文件夹添加到系统路径PATH中,此环境变量将告诉系统去哪个目录搜索执行文件。

安装教程:http://docs.oclint.org/en/stable/intro/installation.html

示例

创建一个sample.cpp文件,如下所示。

下一步是编译代码。其实不需要在使用OCLint检测该代码之前编译它。然而,由于寻找正确的参数成为最经常被问的问题,所以下列语句用于设置OCLint所需的编译标志。

现在,编译标志是-c,被检查的文件是sample.cpp

OCLint检查单个文件使用如下形式:

所以分析sample源文件使用的命令是:

可以将上述语句中options改成OCLint的其他功能,也可以使用不同的编译标志(compiler flags)。复杂一点的例子如下所示:

资源链接

官方网站:http://oclint.org/
开源地址:https://github.com/oclint

1 收藏

资源整理者简介:Juliesand



直接登录

推荐关注

按分类快速查找

关于资源导航
  • 伯乐在线资源导航收录优秀的工具资源。内容覆盖开发、设计、产品和管理等IT互联网行业相关的领域。目前已经收录 1440 项工具资源。
    推送伯乐头条热点内容微信号:jobbole 分享干货的技术类微信号:iProgrammer