Qt静态扫描(命令行操作)
创始人
2024-06-01 11:10:47

Qt静态扫描(命令行操作)

前沿:

静态代码分析是指无需运行被测代码,通过词法分析、语法分析、控制流、数据流分析等技术对程序代码进行扫描,找出代码隐藏的错误和缺陷,如参数不匹配,有歧义的嵌套语句,错误的递归,非法计算,可能出现的空指针引用等等。统计证明,在整个软件开发生命周期中,30% 至 70% 的代码逻辑设计和编码缺陷是可以通过静态代码分析来发现和修复的在C++项目开发过程中,因为其为编译执行语言,语言规则要求较高,开发团队往往要花费大量的时间和精力发现并修改代码缺陷。所以C++ 静态代码分析工具能够帮助开发人员快速、有效的定位代码缺陷并及时纠正这些问题,从而极大地提高软件可靠性并节省开发成本。

静态代码分析工具的优势 :

1. 自动执行静态代码分析,快速定位代码隐藏错误和缺陷。
2. 帮助代码设计人员更专注于分析和解决代码设计缺陷。
3. 减少在代码人工检查上花费的时间,提高软件可靠性并节省开发成本。

扫描工具(clang)

  • clang-tidy

      c/c++ 等语言通用
    
  • clazy-standalone

      clazy 是一个编译器插件,它允许 clang 理解 Qt 语义。您会收到 50 多个与 Qt 相关的编译器警告,范围从不需要的内存分配到 API 的滥用,包括用于自动重构的修复。其实就是clang 只能检测c++的语法, 并不能检测出Qt的一些特有语法, clazy 是在clang 的基础上做了改进, 兼容了Qt 的语法
    

命令行使用:(后期搭建自动化集成使用)

  • 生成compile_commands.json 文件(通过Qt 或者命令都可以)

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 检测文件

      clazy-standalone.exe  -p  .\compile_commands.json  ..\mainwindow.cpp
    
  • 过滤Qt 依赖导致的警告:

      clazy-standalone.exe	-p	 .\compile_commands.json  --ignore-dirs=D:/DeveTool/Qt/		 ..\mainwindow.cpp
    
  • 检测箱展示

      clazy-standalone.exe -p .\compile_commands.json  --ignore-dirs=D:/DeveTool/Qt/ --list-checks ..\mainwindow.cpp
    
  • 检测等级设置:

      clazy-standalone.exe -p .\compile_commands.json  --ignore-dirs=D:/DeveTool/Qt/ --checks=level0,level1,level2 		..\mainwindow.cpp
    
  • 将检测内容输出到yaml 文件:

      clazy-standalone.exe -p .\compile_commands.json  --ignore-dirs=D:/DeveTool/Qt/ --checks=level0,level1,level2  --export-fixes=fixes.yaml ..\mainwindow.cpp
    
  • 自动修改检测的内容:

      clang-apply-replacements.exe ./ 
    

学习视频地址:

Running clazy and clang-tidy from the Command Line

相关内容

热门资讯

苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...