C++代码静态检查

背景

之前出现一次程序crash,虽没什么影响,但定位到原因后发现其实是一个简单的笔误,肉眼还真一时看不出来,但是用静态代码检查工具还是能很方便的测试出来的。

于是就想检验下静态检测工具的作用。

方法

在 vs2019的扩展中可以下载到 Visual Lint 这个工具(一个月试用版),安装后可以看到主流的C++静态代码检查工具:

  • pclint
  • pclint plus
  • cppcheck
  • google cpplint
  • vera++

并逐一验证(除了vera++),比较了下常见问题的效果。

top 1 : pclint plus

top 2 : pclint

top 3 : cppcheck /google cpplint

cppcheck/cpplint 没有仔细去研究详细的使用方法,只是写了一些常见错误,然后常见的操作,发现有的错误能发现有的错误不能发现,而pclint plus/pclint 全都能够发现。

pclint / plus 的优缺点

plus

优点:Gimpel 最新产品,
Full support for recent versions of C and C++ including C99, C11, C++11 and C++14 C++18.

缺点: 暂时没破解,需要购买lic

pclint

优点:有免费下载
缺点:新语法支持力度不够

个人使用

操作了一段时间的plus ,整体和pclint用法差不多, 之前遇到一些boost、stl库的语法问题pclint就很难绕过去,现在plus 就没有问题了。

先这样吧,后续如果购买了lic 再把一些 plus 使用的细节写一下。