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

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

  •  3
  • brickner  · 技术社区  · 14 年前

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

    1. 在生成时启用代码分析
    2. 在C/C++上实现代码分析

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

    我已经启用了它,运行时间很长,但找不到太多。

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

    3 回复  |  直到 12 年前
        1
  •  2
  •   Puppy    14 年前

    从来没有为我做过什么。理论上,它应该有助于捕获逻辑错误,但我从未发现它报告任何东西。

        2
  •  6
  •   Cody Gray    12 年前

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

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

    • 本地代码的代码分析是在编译过程中通过快速引擎分析C++源代码来执行的。

    强烈地 鼓励您要求开发人员在其代码上运行CA 之前 登记入住。如果你没有,你是:

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

    2. 拒绝开发人员通过逐步学习他们应该学习的代码来提高技能的权利 写作和为什么。

    3. 向你的客户卖空是因为他们在使用你的产品时会遭遇崩溃和安全问题。

    此外,如果你写的是原生C++,还没有计划用SAL注释开始修饰你的代码,那么坦白地说,在你工作的地方有人应该被拖到街上并被羞辱!有一些 伟大的 在下一个版本的SAL注释中,很快就会有东西从管道中冒出来-现在就开始吧。 方式 比你的竞争对手领先!:)

        3
  •  2
  •   Patrick    14 年前

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

    我们这样执行lint:

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

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