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

摘要

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


介绍

Cppcheck是一个C/C++代码的静态分析工具。与C++编译器和其他许多分析工具不同,Cppcheck不检测代码中的语法错误,只检测那些编译器通常无法检测到的bug类型,目的是只检测代码中真正的错误。下面是Cppcheck的一些检查项:

  • 检查边界溢出
  • 检查内存泄漏
  • 检查可能的空指针间接引用
  • 检查未初始化的变量
  • 检查无效的STL使用
  • 检查异常安全
  • 警告如果过时的或者不安全的函数使用
  • 警告未使用的或者冗余的代码
  • 检测各种潜在bugs的可疑代码等
    所有检查项可以查看这里:https://sourceforge.net/p/cppcheck/wiki/ListOfChecks/

CppCheck使用方法:

  1. 命令行调用
  2. 可视化界面使用
  3. 作为外部工具使用。若开发工具支持外部工具扩展,可手动配置为外部工具使用
  4. 作为插件使用。若开发工具包含CppCheck插件,可作为插件使用

本文使用第四重方法,通过插件使用CppCheck。 CppCheck在许多流行的开发工具上已经有对应插件,例如:Visual Studio、Code::Blocks、CLion 、QtCreator 、KDevelop 、Git (Linux)等,完整插件支持看这里:http://cppcheck.net/

安装

  1. 安装CppCheck
    CppCheck官网下载并安装, 本文下载的是cppcheck-1.87-x64-Setup.msi
  2. 接着安装vs插件
    cppcheck-vs-addin下载并安装vs插件,本文下载的是CppcheckPlugin_1.3.6.vsix
    注意: vs的CppCheck插件不包含CppCheck本身,因此需要先安装CppCheck再安装CppCheck的vs插件。详情见cppcheck-vs-addin的说明:

NOTE: The add-in does not deploy Cppcheck executable. Please, go to Cppcheck website, download the installer and install it before first use of the add-in. The add-in then may prompt for location of the cppcheck.exe.

  1. 安装完毕
    重启vs,安装完毕,接下来看如何使用。

使用

使用一段测试代码,测试一下CppCheck效果。

使用的测试代码:

int main()
{
	int array_temp[100];
	int a = array_temp[200];
}

测试结果:

  1. vs编译结果(编译通过,未提示错误):
    vs未检查出访问越界错误
  2. CppCheck结果:
    点击 工具 选择 Check current project with cppcheck
    vs使用CppCheck对代码静态分析
    检查出了编译器未检查出的访问越界错误:
    CppCheck检查出了数组访问越界错误

相关/参考链接

官网: http://cppcheck.net/
vs插件地址: https://github.com/VioletGiraffe/cppcheck-vs-addin
C++静态代码检查工具cppcheck在vs下安装与测试步骤: https://blog.csdn.net/qq_16783973/article/details/54907896
Poor Man’s Visual Studio Cppcheck Integration: http://avitebskiy.blogspot.com/2012/10/poor-mans-visual-studio-cppcheck.html

  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值