您使用哪种静态代码分析器(如果有)?我一直在 Python 中使用 PyLint,我对它非常满意,现在我需要类似的 C 代码。
为了正常的日常使用,您需要抑制多少输出?
维基百科维护着一个静态代码分析工具列表 http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis适用于各种语言(包括 C)。
就我个人而言,我都使用过PC-Lint http://www.gimpel.com/ and Splint http://www.splint.org/。最佳选择取决于您编写的应用程序的类型。然而,无论您使用哪种工具,在您正确调整工具和代码之前,信噪比都会很低。
PC-Lint
是我用过的最强大的 Lint 工具。如果将其添加到现有项目中,信噪比可能会很低。但是,一旦正确配置了该工具和您的代码,它就可以用作标准构建过程的一部分。我使用它的最后一个主要项目,我们将其设置为PC-Lint
警告会破坏构建。 PC-Lint 的许可证费用为 389 美元,但物有所值。
Splint
是一个很棒的开源工具。我已经在几个项目中使用过它,但发现使用具有非 ANSI C 扩展的编译器时(例如在嵌入式系统项目上)可能很难配置。
Valgrind http://valgrind.org/作为动态分析工具也值得考虑。
您特别要求反馈SourceMonitor http://www.campwoodsw.com/sourcemonitor.html。该工具为您的代码提供了有趣的指标,但应该用作优秀 Lint 工具的补充,因为它不提供此类分析。
正如他们的主页上所述,SourceMonitor
will:
...找出您有多少代码以及
以确定的相对复杂性
你的模块。例如,您可以使用
SourceMonitor 识别代码
最有可能包含缺陷的
因此值得正式审查。
我在最近的一个项目中使用了它,发现它很容易使用(即使对于嵌入式系统代码也是如此)。复杂性指标是开发不易出错且易于维护的代码的绝佳资源。
SourceMonitor
如果您想自动收集指标,它可以提供漂亮的输出图表以及格式良好的 XML。唯一的缺点是该工具只能在 Windows 上运行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)