对于C / C++是否有Findbugs和/或PMD等效物?[已关闭]

2022-09-02 13:59:18

我最近被问及Coverity Prevent的替代方案,因为代码库包括C / C++和Java。显然,在Java方面,可用的免费工具包括Findbugs(编译代码分析)和PMD(静态代码分析)。它们非常强大,特别是当您开始研究与IDE的集成时(同样,IDE是免费的)。

但是,当您开始使用各种编译器,体系结构等进入C / C++领域时,事情就很糟糕了。

我为Java方面提出了各种工具,包括Findbugs和PMD。我正在寻找的是C / C++方面的最佳选择,当考虑使用以下指标时:

  1. 价格:免费更好,但可以用更好的价值打败。但是,按代码行收费的定价模型是可怕的。
  2. 功能集:这个工具如何让我的生活更美好?在我签入错误之前,在我们发布代码之前,它以什么方式检测到我的错误,等等?
  3. 可用性:我可以在办公桌上使用该工具吗?我可以分享报告和/或发现吗?我可以将该工具与Fogbugz(我们在我的小组中使用)集成吗?我可以将该工具集成到CruiseControl(或等效工具)中吗?

最终的工具将是像具有相同功能集的Findbugs和PMD组合一样有用和可用的东西,每个座位的零美元。


答案 1

我想到的两个是C的夹板和C++的Cppcheck

如果你想寻找更多的选项,这些工具的这个功能就是“静态代码分析”。这可能有助于您找到更多用于C和/或C++的工具。此外,您可能对“有哪些开源C++静态分析工具可用?”问题的答案感兴趣。


答案 2

C++是一种足够复杂的语言,以至于它的工具(例如重构或静态分析工具)不如Java或C#好。

Gimpel Software的PC-lint是我所知道的最接近C++的标准错误检查工具的东西。它具有合理定价模型的商业性。我不知道它与其他工具的集成程度如何。

Clang开源项目最终应该能够做很多你想要的事情(看起来很酷),但它仍在开发中。


推荐