Linux中静态代码分析工具的比较? [关闭
-
13-09-2019 - |
题
是否有人对Linux可用的静态代码分析工具进行了任何比较?以下工具的优点和缺点是什么:
- lintian,
- 疏,
- 夹板,
- 老鼠,
- 使用-wall选项。
您是否认为仅使用这些工具之一就足够了?
我不是在寻找建议(我可以找到很多),而是在可用工具之间进行直接比较。
其他提示
对于每个C开发人员来说,使用-Wall应该是一个问题。另外,使用-wextra可能是一个好主意。
夹板可以在您的应用程序中找到其他潜在的弱点,但是在大多数情况下(!)会打印错误的警告,因此您必须真正了解夹板的含义,而您必须插入诸如 / /出去/ 或者 /没用过/在您的代码中,夹板不会大喊大叫。使用夹板,您应该滤除对您不重要的警告,否则您花了太多时间来分析和滚动很多消息。
请注意,这些工具只能进行静态代码检查。您应该使用Valgrind查找运行时内存泄漏。
我已经使用了几次夹板,发现它太冗长了:我禁用了大多数警告。我认为,如果您正确注释代码,此工具可能会提供有趣的结果。没有代码注释,此工具不是很有帮助。
我有时会使用稀疏,并将其视为有价值的工具。它提供了围绕GCC的包装,称为“ CGCC”。结果,即使包含许多源文件,在程序上运行稀疏也很容易(export
CC=cgcc
和voilà)。如果您正在分析内核源代码,则此程序最有效。
作为旁注,我还定期使用PMCCABE。 PMCCABE不是静态分析仪:它计算循环复杂性。它可以帮助您找到程序中最复杂的功能。这些功能可能是错误的,难以测试。
不隶属于 StackOverflow