静态代码分析工具sonarlint使用一——windows下的makefile工程

ATF(TF-A)/OPTEE之静态代码分析汇总

一、Sonarlint是什么?可以做什么?

        在提交代码前,为提升代码质量还需要使用一些静态代码工具检查代码质量,最为常用的是Sonar;在本地IDE中可以配置Sonarlint插件进行检查。Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量。通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip等二十几种编程语言的代码质量管理与检测。官方网站:https://www.sonarsource.com/products/sonarlint/

二、 Vscode sonarlint插件安装

静态代码分析工具sonarlint使用一——windows下的makefile工程_第1张图片

三、windows下makefile待扫描工程

         本次首先介绍windows下makefile工程,windows下cmake工程、linux下makefile和cmake工程之后再讲解。

        代码目录如下:

 静态代码分析工具sonarlint使用一——windows下的makefile工程_第2张图片 

1、Makefile

 静态代码分析工具sonarlint使用一——windows下的makefile工程_第3张图片 

2、 hello_world.c

 静态代码分析工具sonarlint使用一——windows下的makefile工程_第4张图片 

 3、foo.c

 静态代码分析工具sonarlint使用一——windows下的makefile工程_第5张图片 

4、 foo.h

 静态代码分析工具sonarlint使用一——windows下的makefile工程_第6张图片 

四、 借助makefile扩展工具,生成compile_commands.json文件

    为了分析C 或C++ 代码,需要产生一个compile_commands.json文件,用来告知sonarlint编译的文件有哪些,以及是如何编译的。对于windows下makefile工程,可以借助makefile扩展工具,自动生成compile_commands.json文件。

 静态代码分析工具sonarlint使用一——windows下的makefile工程_第7张图片 

        第一行用来告诉makefile扩展工具,生成compile_commands.json文件

    第二行用来告诉sonarlint,使用的compile_commands.json文件在哪里

 0c4bab0e6200485686d0e543a904f762.png 

        如下为自动生成的compile_commands.json文件内容

 静态代码分析工具sonarlint使用一——windows下的makefile工程_第8张图片 

        各参数含义表示如下:

 静态代码分析工具sonarlint使用一——windows下的makefile工程_第9张图片 

五、 扫描结果查看

        Vscode中点击打开对应的文件,即可自动完成扫描,扫描的中间过程log在“output”中查看

 静态代码分析工具sonarlint使用一——windows下的makefile工程_第10张图片 

        最终的结果,可以查看“problems”

 静态代码分析工具sonarlint使用一——windows下的makefile工程_第11张图片 

六、扫描问题详解

        对于某个具体的问题,如果需要查看具体的问题详解,可以右键查看具体的规则描述和问题产生的路径。

 静态代码分析工具sonarlint使用一——windows下的makefile工程_第12张图片 

1、规则描述

 静态代码分析工具sonarlint使用一——windows下的makefile工程_第13张图片 

2、 问题产生的路径

 静态代码分析工具sonarlint使用一——windows下的makefile工程_第14张图片 

七、扫描规则配置

        对于某种编程语言,可以选择对应的扫描规则开关

 静态代码分析工具sonarlint使用一——windows下的makefile工程_第15张图片 

        对于某个规则,on和off表示当前的规则状态,操作右边的“√”“x”,可以相应的打开或者关闭规则。

 静态代码分析工具sonarlint使用一——windows下的makefile工程_第16张图片 

        网页版的c语言规则,其他语言也可以对应找到:C static code analysis

静态代码分析工具sonarlint使用一——windows下的makefile工程_第17张图片

八、总结

        本文以windows下makefile工程初步介绍了静态代码扫描工具sonarlint的使用,如何自动生成compile_commands.json脚本文件,如何查看扫描结果、分析问题、规则配置等。

    【预告】windows下的cmake工程、linux下makefile和cmake工程之后会详细再讲解。扫描结果不仅限于本地查看,存入数据库、网页显示同样也是可以的,后续有机会再详细展开,比如下图这样。

静态代码分析工具sonarlint使用一——windows下的makefile工程_第18张图片

静态代码分析工具sonarlint使用一——windows下的makefile工程_第19张图片

你可能感兴趣的:(代码规范,代码复审,静态代码分析,sonarlint)