【问题标题】:Do you recommend Enabling Code Analysis for C/C++ on Build?您是否建议在构建时为 C/C++ 启用代码分析?
【发布时间】:2010-05-21 12:39:45
【问题描述】:

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

  1. 在构建时启用代码分析
  2. 在构建时启用 C/C++ 代码分析

我的问题是关于第二个设置。

我启用了它,它需要很长时间才能运行它并没有找到太多。

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    强烈鼓励您要求您的开发人员在签入之前在他们的代码上运行 CA。如果您不这样做,那么您:

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

    2. 剥夺您的开发人员通过逐步了解他们应该编写哪些代码及其原因来提高技能的权利。

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        我们像这样执行 LINT:

        • 在构建期间,只有更改的源(CPP 文件)通过 LINT 运行。可能正在重新编译更多文件(如果更改了头文件),但只有更改后的 .CPP 文件通过 LINT 运行。
        • 对持续集成服务器上的所有文件运行静态代码分析。如果它发现了什么,让它将错误发送给最近对版本控制系统提交更改的开发人员或主要开发人员。

        您还可以做的是对提交到版本控制系统的所有文件执行静态代码分析。例如。在 Subversion 中,您可以在提交触发器中执行此操作。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-02-03
          • 2013-02-07
          • 2017-06-21
          • 2020-05-27
          • 2022-10-02
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多