Main Content

提交前在 IDE 中检查代码质量

Polyspace as You Code 是一款静态代码分析软件,供 C/C++ 开发人员在其集成开发环境 (IDE) 中作为常规软件来使用。Polyspace as You Code 可以查找当前在 IDE 中处于活动状态的文件中是否存在 Bug 和编码标准违规。(要对工程进行完整的集成分析,请使用 Polyspace Bug Finder 或 Polyspace Bug Finder Server。)

安装 Polyspace as You Code 分析引擎和 IDE 扩展

Polyspace as You Code 随面向团队或组织的 Polyspace® Access™ 安装一起提供。设置 Polyspace Access Web 服务器后,任何许可用户都可以从 Polyspace Access Web 界面下载压缩文件格式的 Polyspace as You Code 安装程序。

Download Polyspace as You Code menu

从概念上讲,Polyspace as You Code 包括以下部件:

  • 一个分析引擎

  • 一个 IDE 扩展,允许您在 IDE 中启动分析并查看结果

    针对以下 IDE 提供 IDE 扩展:Visual Studio、Visual Studio Code 和 Eclipse。如果您使用其他 IDE,仍然可以安装分析引擎并从命令行或 IDE 控制台运行分析。

解压缩并启动安装程序,按照屏幕上的说明进行操作。安装分析引擎后,您可以选择安装一个或多个 IDE 扩展。有关详细信息,请参阅使用安装程序安装 Polyspace as You Code

或者,也可以以后再安装 IDE 扩展。有关详细信息,请参阅:

运行 Polyspace as You Code 并审查结果

在安装后,每次打开您的 IDE 时,Polyspace as You Code 扩展都会为启动分析做好准备。如果您打开某个 C 或 C++ 文件,进行一些更改并保存文件,则分析会自动启动。(您可以禁用自动分析,而选择显式启动分析。)

要启动分析,请在您的 IDE 中打开您当前在处理的工程或工作区,并打开工程中的一个文件。或者,将下面的函数复制到 .c.cpp 文件中,并在您的 IDE 中打开该文件(使用工程或其他方式)。该函数包含 Bug,例如,数组访问越界、不必要的代码,以及使用赋值运算符而非相等运算符。

#define MAXBUF 20
int buf[MAXBUF];

int saturateAndShift(int limit, int* stream, int size) {
    int i;
    int numMax = 0;

    if(size > MAXBUF) {
        return -1; 
    }

    if(size <= MAXBUF) {
        for(i=0; i<size; i++) {
            if(stream[i] > limit || stream[i] < 0) {
                buf[i+1] = 0;
            }
            else if(stream[i] = limit){
                buf[i+1] = stream[i];
                numMax ++;
            }
            else {
                buf[i+1] = stream[i];
            }
        }
    }
    return numMax;
}

在运行 Polyspace as You Code 分析后,您可以看到结果(Bug 和编码标准违规)在当前处于活动状态的文件上显示为源代码标记。还可以在 IDE 中的单独列表中查看结果。有关详细信息,请参阅:

还可以在命令行终端或 IDE 控制台中导出结果。要获得更丰富的结果,您可以将结果导出为 JSON 格式,并在显示前进一步对其进行操作。有关详细信息,请参阅Run Polyspace as You Code from Command Line and Export Results

配置 Polyspace as You Code IDE 扩展

默认分析预先配置为在 IDE 中处理小型工程。实际上,您可能需要进一步配置 IDE 扩展设置,以便紧密模拟您的编译结果,启用或禁用检查项,仅查看新结果或进行其他调整。

例如,默认情况下,Polyspace as You Code 在您每次保存代码时都会运行。您可以使用扩展设置禁用自动运行(并使用源代码上的右键点击选项显式运行分析)。若要了解扩展设置的完整列表以及如何打开它们,请参阅:

扩展设置分为三个主要组:

  • 编译选项

    使用这些设置,可以指定是从 IDE 中的现有工件(例如某个 Visual Studio 解决方案或 Visual Studio Code 编译任务)提取编译信息,还是在选项文件中手动枚举与编译相关的 Polyspace 选项。有关详细信息,请参阅在 Polyspace as You Code 中分析编译 (Polyspace Bug Finder)

  • 检查项

    使用这些设置,您可以启用或禁用检查项。有关详细信息,请参阅在 Polyspace as You Code 中设置检查项 (Polyspace Bug Finder)

  • 设置基线选项

    使用这些设置,您可以将您安装的 Polyspace as You Code 与 Polyspace Access 实例关联起来,并使用 Polyspace Access 中的工程设置结果基线。通过设置基线,您可以仅重点关注由于最近的代码更改而产生的新结果。请参阅在 Polyspace as You Code 中设置基线 (Polyspace Bug Finder)