静态检查工具codechecker运用简介

codechecker是一款开源的静态检查工具。

这里是github地址:https://github.com/Ericsson/codechecker

这是一款基于Clang Static Analyzer 和 Clang Tidy的工具。

codechecker的工作流程

开发提交代码后,在命令行里面运行codechecker工具:

静态检查工具codechecker运用简介

大概命令分为两部分:

1. codechecker logging部分,就是记录哪些文件参与了编译。

CodeChecker log -b "make 命令" -o record.json

这个过程生成的将会是一个json,是一个包含了多个字典的列表,其实就是多个文件的编译记录。如下:

[
  {  "directory": "文件路径",
      "command": “编译命令”,
      "file": "文件名"
  },
...
]

2. codechecker analyze部分,就是根据前面生成的json文件进行分析。

这里我们使用的report-hash是context-free-v2的,--skip ./skipfiles 这个也是可选的,可以让你跳过一些文件的检查,-j 指定了分析时占用的系统核数,record.json就是我们前面生成的json文件,-o指定了分析生成的report目录。可以用绝对路径,此处使用的是相对路径。

CodeChecker analyze --report-hash context-free-v2 --skip ./skipfiles -j $(nproc) \
  record.json -o ./reports

3. codechecker parse 部分,这个可以在本地直接生成所有defects的报告。

网页的:CodeChecker parse -e html ./reports -o report.html
或者
文本的:CodeChecker parse ./reports >> report.txt

4. codechecker store部分

如果搭建了codechecker server的话,可以将步骤2生成的report 保存到server上,可以更好的可视化。codechecker的可视化做的还是非常不错的。

codechecker_url 就是server的url, report_name就是在server上的report显示的名字。--tag可以加上代码标签。

CodeChecker store ./reports --url $codechecker_url --name $report_name --tag $short_sha1

这些都是可以写到配置文件里的。

codechecker版本

目前codechecker已经开发到6.16.0版本:https://github.com/Ericsson/codechecker/releases/

 这个release网页可以查看所有的发布的版本的新feature和修复的bugs。

CodeChecker有详细的帮助文档,都在docs下面。

codechecker/README.md

codechecker增量分析

接下来主要介绍一下最近研究的codechecker的增量跑法。未完待续。

 

上一篇:关于ireport分页的使用


下一篇:Jacoco代码覆盖率工具