代码之家  ›  专栏  ›  技术社区  ›  User1

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

  •  6
  • User1  · 技术社区  · 15 年前

    有没有办法让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更彻底或者其他人认为有用的工具?

    2 回复  |  直到 15 年前
        1
  •  4
  •   Michael Burr    15 年前

    MSVC(至少VC9/VS2008)已经对您的特定示例发出警告:

    warning C4706: assignment within conditional expression
    

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

    我发现VC9中的警告相当不错,如果您想强制执行该问题,您可以轻松地设置编译器将其视为错误。

    VisualStudio的Team Server版本包含对PyFAST(微软的静态分析工具)的支持(选项是在C/C++项目的高级/启用代码分析中用于C/C++)。您也可以从Windows驱动程序工具包和/或Windows SDK中获取该工具,但我不能保证有关将WDK/SDK版本集成到Visual Studio中的说明:

    有些人喜欢(非免费)的另一种选择是 Gimpel's PC-Lint product .

        2
  •  0
  •   pm100    15 年前

    我们使用隐蔽性,不是免费的,而是一个很棒的静态分析工具。

    推荐文章