本页面提供的是上一版软件的文档。当前版本中已删除对应的英文页面。
提交前在 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 安装程序。

从概念上讲,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 格式,并在显示前进一步对其进行操作。有关详细信息,请参阅。
配置 Polyspace as You Code IDE 扩展
默认分析预先配置为在 IDE 中处理小型工程。实际上,您可能需要进一步配置 IDE 扩展设置,以便紧密模拟您的编译结果,启用或禁用检查项,仅查看新结果或进行其他调整。
例如,默认情况下,Polyspace as You Code 在您每次保存代码时都会运行。您可以使用扩展设置禁用自动运行(并使用源代码上的右键点击选项显式运行分析)。若要了解扩展设置的完整列表以及如何打开它们,请参阅:
扩展设置分为三个主要组:
编译选项:
使用这些设置,可以指定是从 IDE 中的现有工件(例如某个 Visual Studio 解决方案或 Visual Studio Code 编译任务)提取编译信息,还是在选项文件中手动枚举与编译相关的 Polyspace 选项。有关详细信息,请参阅。
检查项:
使用这些设置,您可以启用或禁用检查项。有关详细信息,请参阅。
设置基线选项:
使用这些设置,您可以将所安装的 Polyspace as You Code 与 Polyspace Access 实例关联起来,并使用 Polyspace Access 中的工程设置结果基线。通过设置基线,您可以仅重点关注由于最近的代码更改而产生的新结果。请参阅。