技术开发 频道

Team System:构建健壮而可靠的软件

    批注支持

    PREfast 还支持批注以改善代码分析的精确性。批注提供有关函数参数和返回类型的之前和之后条件的附加信息。
#include [SA_Post( MustCheck=SA_Yes )] double* CalcSquareRoot ( [SA_Pre( Null=SA_No )] double* source, unsigned int size )
    在上面的示例中:

    <1>[SA_Post ( MustCheck=SA_Yes)] 要求调用方检查 CalcSquareRoot 的返回值 
    <2> [SA_Pre ( Null=SA_No)] 要求调用方将非空参数“source”传递给 CalcSquareRoot

    命令行支持

    除了与开发环境完全集成之外,开发人员还可以从命令行使用 PREfast,如下所示。
C:\>cl /prefast Sample.cpp
    FxCop

    FxCop 是一个静态分析工具,它分析托管代码程序集并报告有关程序集的信息,例如,与 Microsoft .NET Framework Design Guidelines 中阐述的编程和设计规则相冲突。FxCop 表示在分析过程中作为规则执行的检查。规则是一段托管代码,该代码分析程序集并返回有关它发现结果的消息。规则消息识别任何相关的编程和设计问题,并在可能的情况下,提供有关如何修复目标的信息。

    IDE 集成

    为了使开发人员能够自然地使用分析工具,开发人员可以在项目的 Property Pages 上选择 Run FxCop,如图 3 所示。
图 3. 启用 FxCop


    有关包含或排除规则,将规则作为警告或错误的附加选项,也可以在 Property Pages 中找到,如图 4 所示。
图 4. FxCop 规则


    一旦启用 FxCop,在生成过程中,FxCop 就会在 Error List 中报告冲突,如图 5 所示。
图 5. FxCop 规则冲突


    Error List 提供有关规则冲突的信息和建议,以便于您纠正错误。只需在 Error List 中双击规则冲突,即可轻松地定位到触犯了规则的代码行。

    MSBuild 集成

    Visual Studio 的下一个版本从根本上改进了生成过程,其方法是引入一个新的、名为 MSBuild 的生成引擎。可以通过 MSBuild 系统调用 FxCop。这使开发人员能够从命令行运行托管项目上的 FxCop。

    性能工具

    在 Visual Studio 2005 Team System 中,开发人员可以通过性能工具来度量、计算和定位代码中与性能相关的问题。这些工具都完全集成到 IDE 中,以提供无缝、友好的用户体验。

    性能工具支持两种分析方法: 

    <1> 采样 
    <2> 使用仪器

    在采样的过程中,数据收集基础结构将定期中断正在执行的应用程序,以确定正在执行的是哪个函数,并增加函数的采样计数。它存储有关准备函数调用的调用堆栈的信息。
0
相关文章