C / C ++免费替代林特?

我感兴趣的是一个免费的工具,可以像Lint那样静态检查我的C ++代码。 任何提示?

尝试cppcheck ,在这里find: http : //cppcheck.sourceforge.net/

下面是它可以执行的一些检查的一个例子,或者我用它来检查:

  • 数组索引越界
  • 内存/资源泄漏
  • 不正确的新/删除
  • 未能在派生类上放置虚拟析构函数
  • 不匹配的分配和释放
  • 取消分配一个释放的指针
  • 在释放/释放后使用variables
  • 尺寸不匹配
  • 调用strtolstrtoul无效的基数
  • 重叠数据缓冲区
  • 未签名的部门; 结果可能是错的
  • 不寻常的指针算术
  • 返回指向本地数组variables的指针
  • 相同的迭代器与两个容器一起使用
  • 危险使用擦除
  • 推回或pushfront之后,迭代器可能是无效的
  • 缓冲区超限
  • strncat危险使用,可能的缓冲区溢出

也许像这样的列表是你在找什么:

http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis

它看起来像你将最充分地使用Splint或Uno 。

列表的另一个工具:谷歌cpplint.py ,谷歌的C + +风格指南提到 。 这是非常具体的Google,但是。

我个人尝试cppcheck(v1.4),发现它绝望。

例如。 此示例正确检测到数组越界:

 int a[4]; for (int n = 0; n < 5; n++) { a[n] = n; } 

但是这个例子没有被发现:

 int a[4]; int z = 4 + 1; for (int n = 0; n < z; n++) { a[n] = n; } 

夹板 ?

你可能想看看这个项目:

  • Vera ++基于用户定义的规则(用Tcl,Python或Lua编写)

很less没有免费的:

  • QAC ++
  • Coverity公司
  • Klocwork的
  • Abraxas CodeCheck – 听到各种意见…

我最近读了Mozilla使用的DeHydra和Pork ,虽然我没有尝试过。

尝试nsiqcppstyle ,一个用python编写的C ++风格的检查器。