用于 C/C++/C# 的免费静态代码扫描器 [关闭]

Posted

技术标签:

【中文标题】用于 C/C++/C# 的免费静态代码扫描器 [关闭]【英文标题】:Free static code scanner for C/C++/C# [closed] 【发布时间】:2009-01-29 16:13:33 【问题描述】:

有人知道用于 C#、C 或 C++ 中自动代码分析的开源和/或免费代码扫描器吗?

我知道对于 Java,有一些很棒的东西,比如 FindBugs(Eclipse 集成)、PMD 或 Hammurapi。

C 语言有什么类似的吗?

希望

【问题讨论】:

C# 并不是真正的 C 语言,它更接近于 Java。用于 C 和 C++ 的免费开源静态分析软件似乎非常缺乏:-(。 @starblue:lint 工具有什么问题? lint 真的是一个很好的提示!谢谢;)连同这里的答案中的 M$ C# 东西(code.msdn.microsoft.com/sourceanalysis/Release/…),我的问题都解决了;) 【参考方案1】:

FxCop 是一款适用于 .Net 的免费扫描器。

http://msdn.microsoft.com/en-us/library/bb429476(vs.80).aspx

【讨论】:

【参考方案2】:

对于 .NET 语言,您可以查看Reflector CodeMetrics,它提供了一些代码分析和设计指标。还请查看所有Reflector addins。

我也赞同 FxCop 和 StyleCop 的建议。

【讨论】:

【参考方案3】:

StyleCop 进行源代码级别分析。

【讨论】:

【参考方案4】:

NDepend 有一个为期两周的试用许可证。

【讨论】:

而 C++ 的 NDepend 是 CppDepend (cppdepend.com)【参考方案5】:

对于 C 代码,您可以查看Coccinelle。它已经被使用了 查找和修复 Linux 内核中的错误。

【讨论】:

【参考方案6】:

Resharper 做了一些代码分析,特别是指出冗余代码和逻辑错误。

【讨论】:

【参考方案7】:

您可以通过使用 /analyze 开关运行 VC++ 获得一些价值。虽然,并非每个版本都提供此特定开关。获取 Windows SDK 附带的编译器。

【讨论】:

【参考方案8】:

通过这里的 cmets 和一些谷歌魔法,我来到了夹板: http://splint.org/

似乎对 C 很有帮助。 易于使用 不依赖于 Visual Studio

对于 VisualStudio 和 .Net,FxCop 和 StyleCop 扩展看起来非常复杂。

到目前为止,谢谢, 希望

【讨论】:

【参考方案9】:

你会发现一个免费和不太免费的静态分析工具列表here。

【讨论】:

【参考方案10】:

Gendarme 是免费和开源的。它在 IL 级别进行分析,并使用 pdb 提供与源文件相关的信息。即使没有 pdb,它也能提供结果,但很难在代码中本地化。

请注意,最好在发布代码上使用它,这对于静态分析器来说是不寻常的。这是因为 IL 分析:调试代码杂乱无章,导致更多误报。

Gendarme 生成漂亮的 html 报告,并且可以轻松集成到 cc.net 等持续构建服务器中。

【讨论】:

以上是关于用于 C/C++/C# 的免费静态代码扫描器 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Coverity代码扫描工具

jenkins 使用oclint 扫描 oc 代码

测试工具-代码扫描Sonar

C/C++内存分布

C/C++程序中怎么会有静态地址?

C/C++程序中怎么会有静态地址?