静态代码检查工具 cppcheck 的使用

Cppcheck 静态代码分析工具使用指南 Cppcheck静态代码分析工具指南 摘要:Cppcheck是一款开源C/C++静态代码分析工具,可检测内存泄漏、数组越界等常见问题。支持Linux/Windows/macOS平台,通过简单命令即可检查单个文件或整个项目。本文介绍了安装方法(apt/yum/brew等)、基本使用命令、常用选项(如--enable=all开启全面检查)以及实战示例(包含6种典型内存问题的演示代码)。该工具可集成到开发流程中,帮助开发者提前发现潜在缺陷,提高代码质量。(149字) 阅读详情
AI摘要

本文介绍CppCheck,一个用于检查C/C++代码安全性和健壮性的静态代码检查工具。它能发现编译器无法检查到的潜在bug,包括溢出等问题。文中提供了GUI方式、命令行方式和集成到IDE开发环境中的使用方法,如VS和QtCreator。通过集成,开发者可以方便地检测代码错误并进行修复。

      CppCheck是一个C/C++代码缺陷静态检查工具。不同于C/C++编译器及其它分析工具,CppCheck只检查编译器检查不出来的bug,不检查语法错误。所谓静态代码检查就是使用一个工具检查我们写的代码是否安全和健壮,是否有隐藏的问题。

比如无意间写了这样的代码: 

int n = 10;
char* buffer = new char[n];
buffer[n] = 0;


         这完全是符合语法规范的,但是静态代码检查工具会提示此处会溢出。也就是说,它是一个更加严格的编译器。目前 使用比较广泛的C/C++静态代码检查工具有cppcheck 和  pc-lint等。 pc-lint是资格最老,最强力的代码检查工具,但是是收费软件,并且配置起来有一点点麻烦。

CppCheck 是免费的开源软件。使用起来也很方便。 

从 http://cppcheck.sourceforge.net/   下载最新的cppcheck。

使用方式:

一、GUI方式:安装完就可以使用里面的cppcheck-gui来检测代码。界面如下:

 

二、命令行方式:

 

三、集成到IDE开发环境中使用:

1、VS

参考这里(http://avitebskiy.blogspot.tw/2012/10/poor-mans-visual-studio-cppcheck.html),可以方便的把cppcheck嵌入到vs,然后可以方便的对一个文件进行检查,而且支持错误跳转。

  • click the Add button
  • set the Title, for example Cppcheck
  • set Command to C:\Program Files (x86)\Cppcheck\cppcheck.exe
  • set Arguments to --quiet --verbose --template=vs $(ItemPath)
  • set Initial Directory to $(ItemDir)
  • make sure Use Output window checkbox is enabled
  • click on the Move Up button repeatedly until your entry is at the top of the list, this will make it easier to identify you new command as you can count on it being calledTools.ExternalCommand1
  • click OK.

2、Qt Creator

     在QtCreator中点击:tools=>external=>config...=>add 弹出如下对话框:

 

填入下列参数:

设置完后就可以用cppcheck检查指定目录下的代码文件:tools=>external=>cppcheck 开始检查。

参考文章: http://www.cnblogs.com/lancidie/archive/2013/04/13/3019505.html

以下这篇文章也非常详细:http://blog.youkuaiyun.com/akof1314/article/details/7477014

Cppcheck静态分析工具详解 你可以从Cppcheck的官方网站(Cppcheck下载页面)下载并安装Cppcheck。安装完成后,你可以在终端或命令提示符中使用Cppcheck命令。 阅读详情

相关推荐

C/C++ 静态代码检查工具cppCheck

Cppcheck是一个用于C/C++代码的静态分析工具,它可以帮助开发者检测代码中的错误;Cppcheck可以检测出许多类型的错误,包括语法错误、未使用的函数、内存泄漏、未初始化的变量等;Cppcheck还支持用户自定义规则,这使得开发者可以根据自己的需求定制Cppcheck的行为;使用--suppress如果你想要忽略某些警告,可以在命令行中使用 --suppress 选项。

贝勒里恩的博客 4950

cppcheck静态代码检查工具使用教程

cppcheck 进行代码检查的方法

ZONGXP的博客 5万+

Linux开发者的CI/CD(8)静态代码检查工具cppcheck使用大全

cppcheck 是一种 C/C++ 代码缺陷静态检查工具。不同于 C/C++ 编译器及很多其它分析工具,它不检查代码中的语法错误。Cppcheck 只检查编译器检查不出来的 bug 类型,其目的是检查代码中真正的错误。部分操作介绍,如需更多操作说明,请使用cppcheck --help进行查看1、检查某一个c/c++文件2、检查文件夹中的所有文件cppcheck将递归检查path文件夹下所有源文件3、启用消息默认情况下,只显示错误消息,可以通过–enable命令启用更多检查启用警告消息:启用性能消息: 启

二进制君 1594

CppCheck的使用

一、 实验要求 明白CppCheck的配置及原理,并使用CppCheck进行代码缺陷的检查,进行总结。 二、 CppCheck的原理介绍 1、Cppcheck先是分析拆解代码,将每个有效字符作为一个token(token是抽象代码中所有字符的 类,包含字符的字符串,类型等),提供tokenlist,规则实现者通过匹配需要的字符找到感兴趣的代 码,然后通过计算查找bug注意点:其中Cppchec...

爱书不爱输的程序猿 5145

【QML初学者文档】一问读懂QML基础开发(内附大量简单源码)

QML是Qt的一大特色,拥有强大的UI制作能力。但是想要学好QML,还需要一些细节和技巧的掌握。本篇文章将为你提供完整的QML知识体系,让你成为Qt的UI魔法师!

BenBierBa的博客 2万+

大疆航线文件解析指南:5分钟搞懂KMZ里的template.kml和waylines.wpml区别

本文深入解析大疆无人机航线文件KMZ中template.kml与waylines.wpml的核心区别。template.kml是定义任务框架和全局参数的可编辑模板,而waylines.wpml是包含精确执行指令的最终文件。理解两者差异对于高效规划航线、批量生成任务及进行二次开发至关重要。

sun99的博客 866

cppcheck使用说明

cppcheck可以检查出数组越界,内存泄漏,空指针引用。无错误的话,error.txt文件内容为空。

weixin_48067074的博客 3075

手把手教你用ESP32驱动MAX30102心率血氧传感器(含完整代码)

本文详细介绍了如何使用ESP32微控制器驱动MAX30102心率血氧传感器,构建智能健康监测系统。内容涵盖PPG原理、硬件连接、驱动配置、信号处理算法以及Web服务器数据可视化,提供完整代码实现,帮助开发者快速上手物联网健康设备开发。

weixin_29208077的博客 586

静态代码检查工具的使用(cppcheck)

所谓静态代码检查就是使用一个工具检查我们写的代码是否安全和健壮,是否有隐藏的问题。 比如无意间写了这样的代码: int n = 10; char* buffer = new char[n]; buffer[n] = 0; 这完全是符合语法规范的,但是静态代码检查工具会提示此处会溢出。也就是说,它是一个更加严格的编译器。 使用比较广泛的静态代码检查工具有cppcheck pc...

移动开发记录 392

用 Python 和 uiautomation 实现微信批量发送

思路是这样,将要发送的人员名单(包括称呼)以及发送内容都维护到Excel里,程序运行时读取Excel里内容,自动搜索人员姓名(微信昵称或备注名),填入要发送的内容,拼接上称呼(如果需要的话)自动点击发送,这样轮巡直至名单人员全部发送完成。、

jankingdom的专栏 1471

企业IT运维实录:批量部署银河麒麟V10-SP1,Ghost镜像与UKey激活实战

本文详细介绍了企业级银河麒麟V10-SP1操作系统的批量部署全流程,包括标准化镜像制作、自动化封装技术、网络化部署方案及UKey集群激活方案。通过实战案例和技术要点解析,帮助企业IT运维团队大幅提升部署效率,确保系统安全与稳定性。

weixin_30729609的博客 387

linux静态代码检查工具,静态代码检查工具 cppcheck 的使用

CppCheck是一个C/C++代码缺陷静态检查工具。不同于C/C++编译器及其它分析工具,CppCheck只检查编译器检查不出来的bug,不检查语法错误。所谓静态代码检查就是使用一个工具检查我们写的代码是否安全和健壮,是否有隐藏的问题。比如无意间写了这样的代码:intn=10;char*buffer=newchar[n];buffer[n]=0;这完全是符合语法规范的,但是静态代码检...

weixin_36191781的博客 861

ABAP链接外围数据库SQL实战案例

这是一个ABAP 直接读取SQL数据库数据的实例,以此种方式可以将SAP与外围的系统做一些集成,比如生产,SAP本身生产这部分是弱项,管不了那么细,很多车间的数据都是在MES系统,如管理上需要则可以将MES的一些数据自动读取过来,结合SAP本身的业务数据,做一些分析是比较方便的。 1、首先在SAP里建立数据库链接:DBCO ,直接增加一条记录,填上数据库的相关信息:IP地址、数据库名、账号SA、密码这些。 2、开发程序,设置成自动运行的计划,固定时间自动读取SQL里的数据,保存到SAP自定义表.

heng0757的专栏 1511

CppCheck C++静态代码检查工具在Visual Studio(VS)下的配置和使用

本文介绍如何在Visual Studio(VS)下使用CppCheck检查代码,包括安装和使用两个部分。与网上通过vs外部工具使用CppCheck的方法不同,本文介绍了CppCheck的vs插件,配置更方便,使用体验更好。

Liber-coder的博客 1万+

物联网Node-Red开发教程-第6章 HTTP与Web服务

本章摘要(147字): 本章系统讲解了Node-RED中的HTTP节点应用,重点包括: 三大核心HTTP节点功能:http in(接收请求)、http response(返回响应)、http request(调用外部API) 详细演示了REST API开发流程,包括路径参数(req.params)处理和响应构造 提供了创建Hello World API、传感器数据接口等实用示例 涵盖HTTP方法特性、状态码设置及响应头配置等关键知识点 通过流程图和JSON配置直观展示节点连接方式,帮助快速掌握Web服务开发

shihui2003的博客 264

在 SAP 中,Primary Cost Element(初级成本要素)与Secondary Cost Element(次级成本要素)的核心区别、作用及业务含义可归纳如下

摘要:SAP中初级成本要素与次级成本要素的核心区别在于:初级要素必须关联FI模块的损益科目,直接影响财务报表,用于记录外部成本(如电费、薪酬);次级要素仅存在于CO模块,用于内部成本分配(如分摊、作业分配),不影响外部报表。初级要素是"外部成本入口",次级要素是"内部成本搬运工",二者共同实现成本的多维度追踪与管理。

金牌架构师 759

CppCheck静态代码检查配置(命令行方式或在VS中使用)

目录 CppCheck静态代码检查 1.1 安装cppcheck 1.2 直接使用Cppcheck 1.2.1 命令行方式 1.2.2 UI方式 1.3 在VS2017中使用 1.3.1 在VS2017中配置Cppcheck 1.3.2 在VS2017中使用CppCheck CppCheck静态代码检查 使用cppcheck作为静态代码检查工具,可用于检查unusedFunction 1.1 安装cppcheck 下载地址:https://github.com/danmar/cppc

Echo的博客 9944

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: Qt Creator 中使用svn进行版本管理
下一篇: C++之类成员指针
e5Max
博客等级 码龄14年 145粉丝 129原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值