前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >使用Cppcheck对代码进行静态检查

使用Cppcheck对代码进行静态检查

作者头像
不脱发的程序猿
发布2025-03-07 18:10:40
发布2025-03-07 18:10:40
750
举报

在汽车行业嵌入式软件开发的进程中,单元测试环节对代码进行静态检查是至关重要的一环,它能够提前发现代码中的潜在缺陷、逻辑错误以及不符合编码规范之处,为后续的集成测试、系统测试筑牢根基,极大程度地降低软件开发成本,提升软件质量。

我之前团队习惯使用QAC这款强大的静态分析工具。 然而,QAC 是一款付费软件,让许多普通规模的汽车相关企业,尤其是初创型公司或是预算有限的中小企业望而却步。

在没有充足资金投入购买此类工具的情况下,难道就只能放弃高效的静态检查了吗?实则不然。

在此,强烈推荐使用 Cppcheck 这款开源免费的静态代码分析工具。

Cppcheck 拥有诸多优势,一方面,它支持对 C 和 C++ 代码进行广泛且细致的检查,无论是常见的空指针引用、数组越界、内存泄漏等经典错误,还是较为隐晦的未初始化变量使用、逻辑运算优先级混淆等问题,都能被有效识别。

另一方面,它具有出色的跨平台特性,无论是 Windows、Linux 还是 Mac 系统,都能无缝适配,这对于汽车嵌入式开发中多样的开发环境来说极为便利。

下载链接:https://cppcheck.sourceforge.io/

这里我使用的是Windows版本安装完成后,效果如下:

Cppcheck的使用比较简单,主要分为两步,一是整理好需要检查的软件代码工程;二是使用Cppcheck进行检查。

1、整理代码工程

拷贝一份代码工程用于做静态检查,整理代码工程只需要保留软件工程中的所有头文件和源文件,其他的编译文件、配置文件等,全部删除就可以。

原工程如下:

整理后效果如下:

2、静态检查

静态检查前,需要将Cppcheck软件的检查设置修改成我们预期的检查项,以下是我的静态检查设置:

点击分析,选择目录,加载需要静态检查的软件工程:

导入软件工程后,立刻会开始静态检查:

静态检查后可以看到有问题文件的说明,结果如下:

也可以设置过滤,查看不同等级的静态检查结果。

最后,可以在统计中查看检查结果汇总。

可以将结果导出成PDF文件。

结果参数说明如下:

  • error:指代代码里存在的错误项,像内存泄漏这类情况。
  • warning:给出的编程改进意见,目的在于避免产生 bug。
  • style:涉及编码风格相关内容,会提示哪些函数未被使用以及多余代码等情况。
  • portability:提示在跨平台时容易出现的一些问题。
  • performance:表明该部分代码具备可优化的空间。
  • information:属于其他信息,可予以忽略。

静态检查结果PDF如下:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-03-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 美男子玩编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档