最近几年,出现了新一代的静态代码检查器。这些新的代码检查器能够根据控制流和数据流分析来发现新型的缺陷。现在,无需实际运行代码即可检测到缓冲区溢出,内存泄漏和空指针取消引用等错误。由于最近的革命,用于C和C++的静态代码分析市场正在迅速变化。现有的代码检查器供应商也被迫向其工具中添加数据流和控制流功能。结果,这些工具的潜在用户很难选择合适的工具来完成工作。
该调查比较了能够进行控制流和数据流分析的可用静态代码检查器。这项研究将逐步进行,并在有可用数据时揭示新数据。欢迎提供反馈和客户体验,并将其整合到结果中。
将采取以下步骤。首先,选择工具。之后,将确定包括其称重在内的要求。最后,将收集所请求的数据。调查的一部分将是建立一个测试套件进行比较。
一、合格工具
1.为了符合条件,必须满足以下要求:
1)C和/或C++支持
2)无需运行代码即可检测控制流和/或数据流缺陷
2.当前合格的工具有:
1).C++test/BugDetective (Parasoft)
2).lang (开放源代码)
3).CodeSonar (GrammaTech)
4).覆盖范围 (Synopsys)
5).CppCheck (开放源代码)
6).强化 (HP)
7).Klocwork (盗贼之波)
8).olySpace Bugfinder (MathWorks)
二、要求
1.评估以下要求:
1).易于安装。获得第一结果需要多长时间?
2).使用方便。了解结果需要花费多少时间?更改配置需要多少时间?是否有抑制个人违规的支持?有用于IDE编程的插件吗?
3).性能。处理TIOBE测试套件需要多长时间?
4).结果的准确性。在TIOBE测试套件中发现了多少误报?有多少假阴性?可用规则集是否足够完整?
5).界面。可以以批处理模式运行吗?如果是这样,将数据导出到另一个程序有多容易?
6).价钱。使用哪种定价模型,许可费用是多少?
7).支持。获得支持需要多长时间?答案的质量如何?
2.C/C++测试套件
3个最常下载的SourceForge开源C/C++项目将用作测试套件。这些是:
1).火狐浏览器
2).Apache HTTP服务器
3).MySQL
让我们知道是否还有其他重要要求。在下一版中,将发布各种工具的“易于安装”结果。更多相关资讯,请继续关注中培教育。