C++(Qt)软件调试---静态分析工具cppcheck(22)
C++(Qt)软件调试—静态分析工具cppcheck(22)
文章目录
- C++(Qt)软件调试---静态分析工具cppcheck(22)
- @[toc]
- 1、概述🐜
- 2、安装Cppcheck🪲
- 3、检测消息类型
- 3、Qt Creator使用Cppcheck🦗
- 4、vs中使用cppcheck
- 5、参考地址
文章目录
- C++(Qt)软件调试---静态分析工具cppcheck(22)
- @[toc]
- 1、概述🐜
- 2、安装Cppcheck🪲
- 3、检测消息类型
- 3、Qt Creator使用Cppcheck🦗
- 4、vs中使用cppcheck
- 5、参考地址
更多精彩内容 |
---|
👉内容导航 👈 |
👉C++软件调试 👈 |
1、概述🐜
Cppcheck 是 C/C++ 代码的静态分析工具。它提供独特的代码分析来检测错误,并专注于检测未定义的行为和 危险的编码结构。目标是获得极少的误报。
它能够帮助开发者发现潜在的问题,如内存泄漏、数组越界、未初始化变量的使用等,从而提高代码的质量和安全性。
免费: cppcheck有免费开源版本和收费版本,使用开源版本就开源满足绝大部分需求。
跨平台: Cppcheck 是跨平台的。有适用于 Windows、Linux、Mac、BSD 的安装包。它也在各种其他操作系统上编译和运行。
使用简单: 支持命令行和图形界面、集成到第三方IDE中。
易于集成: 该工具可轻松集成到许多不同的开发环境中。您可以在 Visual Studio、VScode、Eclipse、Clion、Qt Creator、C++ Builder 和许多其他 C/C++ IDE 中运行它。
可检测的未定义行为
- 野指针、空指针
- 除零异常
- 整数溢出
- 无效的移位操作数
- 无效的转化
- STL 的无效使用
- 内存泄漏
- 越界检查
- 未初始化的变量
- 写入 const 数据
- 详细检查内容
注意:每种静态分析工具都有自己的优缺点,所以不必强调哪个最牛,多种工具混合检测会检查更加全面,但是静态分析工具会消耗电脑性能,所以使用一个还是多个需要自己权衡利弊。
演示环境:
- 系统:
- Windows11
- 编辑器:
- Visual Studio 2022
- Qt Creator15
2、安装Cppcheck🪲
- 下载安装
3、检测消息类型
- error:错误检测,在执行代码时,会出现未定义的行为或其他错误,例如内存泄漏或资源泄漏;
- warning:警告提示,执行代码时,可能存在未定义的行为;
- style:代码风格检查,样式问题,例如未使用的函数、冗余代码、常量、运算符优先级、可能的错误;
- performance:性能优化检查,基于常识的运行时性能建议,但不确定通过修复这些消息是否能实现任何可测量的速度差异。
- portability:可移植性警告。实现定义的行为。64位的可移植性。一些未定义的行为可能会“如你所愿”,等等。
- information:配置问题,这与语法正确性无关,但可以使用的 Cppcheck 配置可以改进,例如找不到头文件。
3、Qt Creator使用Cppcheck🦗
-
选中【编辑】【preferences】;
-
打开首选项窗口后,选择【分析器】【cppcheck】;
-
在binary栏设置安装的cppcheck路径;
-
checks勾选需要显示的检查消息;
-
配置完成后创建一个Qt工程;
-
鼠标选择【分析】【cppcheck】;
-
打开配置窗口后可配置显示的检查信息、需要检查的文件等;
-
当修改完成代码后保存修改的文件就会自动进行分析检查;
-
检查结果如下图所示,在代码左侧会出现蓝色或者红色的图标,将鼠标移动到图标上就会显示检查的信息。
4、vs中使用cppcheck
-
下载安装插件
-
安装完成后启动vs,创建一个工程,选择【工具】【check curent project with cppcheck】;
-
第一次使用时需要选择cppcheck.exe路径,然后就可以进行代码分析了。
-
代码分析结果如下所示;
5、参考地址
- 网站主页
- HTML版本帮助手册
- PDF版本帮助手册
- Release 1.5 for VS 2022 · VioletGiraffe/cppcheck-vs-addin · GitHub