您是否建议在Build上启用C / C ++的代码分析?

时间:2010-05-21 12:39:45

标签: c++ visual-studio visual-studio-2010 c++-cli code-analysis

我正在使用Visual Studio 2010,在我的C ++ / CLI项目中有两个代码分析设置:

  1. 在Build
  2. 上启用代码分析
  3. 在Build
  4. 上启用C / C ++的代码分析

    我的问题是关于第二种情况。

    我启用了它,运行需要很长时间,而且找不到太多。

    您是否建议启用此功能?为什么呢?

3 个答案:

答案 0 :(得分:6)

您指定的两个选项分别控制托管和本机C ++上的代码分析的自动执行。

  • 托管代码的代码分析由FXCop引擎分析生成的IL执行。

  • 本地代码的代码分析在编译期间由PREFast引擎分析C ++源代码执行。

强烈鼓励您要求您的开发人员在签入之前在其代码上运行CA.如果不这样做,您就是:

  1. 延迟确保您的代码没有已知漏洞的过程,否则系统会从您的产品来源中删除这些漏洞。

  2. 通过逐步学习他们应该写作的代码及其原因,拒绝开发人员提高技能的权利。

  3. 将客户缩短,因为他们在使用您的产品时会遇到崩溃和安全问题。

  4. 此外,如果您正在编写原生C ++并且尚未计划使用SAL Annotations开始装饰您的代码,那么坦率地说,您工作地点的某个人应该被拖到街上并受到羞辱!在SAL注释的下一个版本中,很快就会出现一些伟大的内容 - 现在就开始吧,并且与竞争对手相比,方式在曲线之前! :)

答案 1 :(得分:2)

从来没有为我做过任何事情。从理论上讲,它应该有助于捕捉逻辑错误,但我从未发现它会报告任何内容。

答案 2 :(得分:2)

我们正在使用LINT为普通的C ++应用程序(没有.Net,没有C ++ / CLI)进行静态代码分析。 这与您使用的不同,但可能会应用相同的原则。

我们像这样执行LINT:

  • 在构建期间,仅通过LINT运行已更改的源(CPP文件)。可能正在重新编译更多文件(如果更改了头文件),但只有更改的.CPP文件通过LINT运行。
  • 对Continuous Integration服务器上的所有文件运行静态代码分析。如果找到了某些内容,请将错误邮寄给最近提交的对版本控制系统或主开发人员进行更改的开发人员。

您还可以做的是对提交给版本控制系统的所有文件执行静态代码分析。例如。在Subversion中你可以在commit-trigger中执行此操作。