繁体   English   中英

非.Net C ++代码的FxCop(或等效)

[英]FxCop (or equivalent) for non-.Net C++ code

有没有办法让FxCop分析非托管C ++代码? 设置/ clr标志允许FxCop打开.exe。 它找到了很多C ++项目,但对代码的分析非常薄弱。 例如,跳过以下代码:


int i=0;
if (i=2) printf("Don't worry..everything will be okay.");

我想要一个可以捕获i=2的工具,并警告它应该是i==2 有关让FxCop更彻底或其他人认为有用的其他工具的建议吗?

MSVC(至少VC9 / VS2008)已经警告您的具体示例:

warning C4706: assignment within conditional expression

(哎呀:我刚刚意识到我的测试项目设置已经达到警告级别4 - / W4。MSVC不会在默认设置下发出此警告)。 因此,将项目设置设置为/ W4并获得更多诊断(希望没有太多噪音)。

我发现VC9中的警告相当不错,如果你想强制解决问题,你可以轻松设置编译器将它们视为错误。

Visual Studio的Team Server版本包含对PREfast的支持 - 来自Microsoft的静态分析工具(该选项位于C ++项目的高级/启用C / C ++代码分析中)。 您也可以在Windows驱动程序工具包和/或Windows SDK中获取该工具,但我无法保证将WDK / SDK版本集成到Visual Studio中的说明:

有些人喜欢(非免费)的另一种选择是Gimpel的PC-Lint产品

我们使用覆盖,而不是免费但是一个很棒的静态分析工具

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM