是否有人对Linux可用的静态代码分析工具进行了任何比较?以下工具的优点和缺点是什么:

  • lintian,
  • 疏,
  • 夹板,
  • 老鼠,
  • 使用-wall选项。

您是否认为仅使用这些工具之一就足够了?

我不是在寻找建议(我可以找到很多),而是在可用工具之间进行直接比较。

有帮助吗?

解决方案

当然有 维基百科列表. 。该列表就是这样,列表,而不是比较,而是 链接 在页面上,似乎至少部分回答了您的问题,并且(非常简短)提到了您列出的几个程序。

其他提示

对于每个C开发人员来说,使用-Wall应该是一个问题。另外,使用-wextra可能是一个好主意。

夹板可以在您的应用程序中找到其他潜在的弱点,但是在大多数情况下(!)会打印错误的警告,因此您必须真正了解夹板的含义,而您必须插入诸如 / /出去/ 或者 /没用过/在您的代码中,夹板不会大喊大叫。使用夹板,您应该滤除对您不重要的警告,否则您花了太多时间来分析和滚动很多消息。

请注意,这些工具只能进行静态代码检查。您应该使用Valgrind查找运行时内存泄漏。

我已经使用了几次夹板,发现它太冗长了:我禁用了大多数警告。我认为,如果您正确注释代码,此工具可能会提供有趣的结果。没有代码注释,此工具不是很有帮助。

我有时会使用稀疏,并将其视为有价值的工具。它提供了围绕GCC的包装,称为“ CGCC”。结果,即使包含许多源文件,在程序上运行稀疏也很容易(export CC=cgcc 和voilà)。如果您正在分析内核源代码,则此程序最有效。

作为旁注,我还定期使用PMCCABE。 PMCCABE不是静态分析仪:它计算循环复杂性。它可以帮助您找到程序中最复杂的功能。这些功能可能是错误的,难以测试。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top