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

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

b站视频

b站上传制作的视频链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值