用于 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# 的免费静态代码扫描器 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章