主要内容

本页翻译不是最新的。点击此处可查看最新英文版本。

在服务器端运行 Polyspace Bug Finder 并上传结果以便在 Web 端审查

R2026a

Polyspace® Bug Finder™ Server™ 检查 C/C++ 代码中是否存在缺陷和编码标准违规情况,然后将检查结果上传到 Web 界面以便进行代码审查。

您可以在持续集成期间运行 Bug Finder。可以设置脚本,以按固定时间间隔或基于提交的新代码运行 Bug Finder 分析。这些脚本可以上传分析结果,以便在 Polyspace Access Web 界面中审查,还可以选择通过电子邮件向源文件的负责人发送 Polyspace 检查结果。负责人可以打开 Web 界面,仅审查自己提交的代码的新检查结果,然后对问题进行修复或申述。

在典型的工程或团队中,Polyspace Bug Finder Server 可在多台测试服务器上定期运行并上传结果以供审查。团队中的每位开发人员和质量工程师都有一个 Polyspace Access™ 许可证,可用于在 Web 界面中查看结果以进行调查和 Bug 修复。

前提条件

要在服务器端运行 Bug Finder 分析并在 Polyspace Access Web 界面中审查结果,请执行以下一次性设置:

  • 要运行分析,请安装 Polyspace Bug Finder Server 产品的一个实例。

  • 要上传结果,请设置托管 Polyspace Access 的 Web 界面所需的组件。

  • 要查看上传的结果,您和审查结果的每位开发人员都必须有 Polyspace Access 许可证。

请参阅安装 Polyspace Server 和 Access 产品。

检查 Polyspace 安装

要检查是否已安装 Polyspace Bug Finder Server,请执行以下操作:

  1. 打开一个命令行窗口。导航到 polyspaceserverroot\polyspace\bin。其中,polyspaceserverroot 是 Polyspace Bug Finder Server 的安装文件夹,例如 C:\Program Files\Polyspace Server\R2026a。另请参阅安装文件夹。

  2. 输入:

    polyspace-bug-finder-server -help

您应该会看到 Bug Finder 分析可以使用的选项的列表。

要检查是否已设置 Polyspace Access Web 界面以上传结果,请执行以下操作:

  1. 再次导航到 polyspaceserverroot\polyspace\bin。

  2. 输入:

    polyspace-access -host hostName -port portNumber -create-project testProject

    其中,hostName 是托管 Polyspace Access Web 服务器的服务器的名称。对于本地托管的服务器,请使用 localhost。portNumber 是服务器的可选端口号。如果省略端口号,则将使用 9443。

    如果设置已完成,则 Polyspace Access Web 界面中会创建一个名为 testProject 的工程。

    每次使用 polyspace-access 命令时都会提示您输入登录名和密码。为避免每次都输入登录信息,请随该命令提供登录名和您的密码的加密版本。要创建加密密码,请输入:

    polyspace-access -encrypt-password

    输入您的登录名和密码。复制加密密码,并在使用 polyspace-access 命令时使用 -encrypted-password 选项并提供此加密密码。

  3. 在 Web 浏览器中打开以下 URL:

    https://hostName:portNumber/metrics/index.html
    其中,hostName 和 portNumber 是上一步骤中的主机名和端口号。

在 Polyspace Access Web 界面上的工程资源管理器窗格中,您会看到新创建的工程 testProject。

对示例文件运行 Bug Finder

要运行 Bug Finder,请在操作系统中打开一个命令行窗口。

  1. 要运行 Bug Finder 分析,请使用 polyspace-bug-finder-server 命令。

  2. 要将结果上传到 Polyspace Access Web 界面,请使用 polyspace-access -upload (Polyspace Access) 命令。

为避免键入完整的命令路径,请将路径 polyspaceserverroot\polyspace\bin 添加到您的操作系统上的 Path 环境变量中。

对随您的 Polyspace 安装提供的示例文件试用这些命令。

  1. 将示例源文件从 polyspaceserverroot\polyspace\examples\cxx\Bug_Finder_Example\sources 复制到您有写入权限的另一个文件夹。在命令行上导航到此文件夹。

  2. 输入:

    polyspace-bug-finder-server -sources numerical.c,dataflow.c -I . -checkers numerical,data_flow -results-dir .
    polyspace-access -host hostName -port portNumber -login username -encrypted-password pwd -create-project testProject
    polyspace-access -host hostName -port portNumber -login username -encrypted-password pwd -upload . -project myFirstProject -parent-project testProject

    其中,username 是您的登录名,pwd 是您之前创建的加密密码。请参阅检查 Polyspace 安装。

刷新 Polyspace Access Web 界面。您会在工程资源管理器窗格中看到一个 testProject 文件夹。该文件夹包含一个 myFirstProject 工程。

要查看工程中的结果,请点击审查。有关详细信息,请参阅审查 Bug Finder 结果 (Polyspace Access)。也可以使用 Polyspace Access 界面右上角的 按钮来访问该文档。

与 polyspace-bug-finder-server 命令一起使用的分析选项包括:

  • 应用程序源文件 (-sources):指定逗号分隔的源文件。

  • 包含路径 (-I):指定包含文件夹的路径。每次要添加单独的包含文件夹时,请使用 -I 标志。

  • 查找缺陷 (-checkers):指定要检查的缺陷 (Bug)。

  • -results-dir:指定将保存 Polyspace Bug Finder 结果的文件夹的路径。

    请注意,每次运行时都会清理并重新填充结果文件夹。为避免在清理过程中意外删除文件,请为 Polyspace 结果指定一个专用文件夹,而不是使用包含其他文件的现有文件夹。

有关可用于 Bug Finder 分析的选项完整列表,请参阅 配置。要在系统 Web 浏览器中打开该 Bug Finder 文档,请输入:

polyspace-bug-finder-server -doc

用于在服务器端运行 Bug Finder 分析的示例脚本

要运行分析,您可以使用脚本而非在命令行中键入命令。脚本可以在您每次添加或修改源文件时运行。

下面显示的是一个示例 Windows® 批处理文件。在该示例中,Polyspace 的安装路径是在脚本中指定的。要使用此脚本,请将 polyspaceserverroot 替换为您的安装路径。您必须提前生成要在脚本中使用的加密密码。请参阅检查 Polyspace 安装。

echo off
set POLYSPACE_PATH=polyspaceserverroot\polyspace\bin
set LOGIN=-host hostName -port portNumber -login username -encrypted-password pwd
"%POLYSPACE_PATH%\polyspace-bug-finder-server" -sources numerical.c,dataflow.c -I .^
 -checkers numerical,data_flow -results-dir .
"%POLYSPACE_PATH%\polyspace-access" %LOGIN% -create-project testProject
"%POLYSPACE_PATH%\polyspace-access" %LOGIN% -upload . -project myFirstProject -parent-project testProject
pause

下面显示的是一个示例 Linux® shell 脚本。

POLYSPACE_PATH=polyspaceserverroot/polyspace/bin
LOGIN=-host hostName -port portNumber -login username -encrypted-password pwd
${POLYSPACE_PATH}/polyspace-bug-finder-server -sources numerical.c,dataflow.c -I .\
 -checkers numerical,data_flow -results-dir .
${POLYSPACE_PATH}/polyspace-access $LOGIN -create-project testProject
${POLYSPACE_PATH}/polyspace-access $LOGIN -upload . -project myFirstProject -parent-project testProject

在启动脚本以外的单独文件中指定源和选项

您可以在单独的文本文件中列出源文件和分析选项,而不必在启动脚本中列出。

通过从启动脚本中删除源文件和分析选项设定,您可以在有新的代码提交时根据需要修改这些设定,同时保持启动脚本不变。

假定使用前面示例中的脚本。您可以修改 polyspace-bug-finder-server 命令以使用文本文件指定源文件和选项。不使用:

polyspace-bug-finder-server -sources numerical.c,dataflow.c -I . -checkers numerical,data_flow -results-dir .

而是使用:

polyspace-bug-finder-server -sources-list-file sources.txt -options-file polyspace_opts.txt -results-dir .

其中:

  • sources.txt 在单独的行中列出源文件:

    numerical.c
    dataflow.c

  • polyspace_opts.txt 在单独的行中列出分析选项:

    -I .
    -checkers numerical,data_flow

通常,源文件是在编译命令(联编文件)中指定的。除了直接指定源文件,您也可以跟踪编译命令来创建一个源文件设定列表。请参阅 polyspace-configure。

完整工作流

在典型的持续集成工作流中,您需要运行一个执行以下步骤的脚本:

  1. 从您的编译命令中提取 Polyspace 选项。

    例如,如果您使用联编文件来编译您的源代码,则可以从联编文件中提取分析选项。下面的命令首先执行 make,然后根据执行的流程确定分析选项。

    polyspace-configure -output-options-file compile_opts make

    另请参阅:

  2. 使用之前创建的选项文件运行分析。追加另一个包含分析所需的其余选项的选项文件。

    polyspace-bug-finder-server -options-file compile_opts -options-file run_opts

    请参阅用于 Polyspace 分析的选项文件。

  3. 将结果上传到 Polyspace Access。

    polyspace-access login -upload resultsFolder -project projName -parent-project parentProjName

    其中,login 是与托管 Polyspace Access 的 Web 服务器进行通信所需选项的组合:

    -host hostName -port portNumber -login username -encrypted-password pwd

    resultsFolder 是包含 Polyspace 结果的文件夹。projName 和 parentProjName 是将显示在 Polyspace Access Web 界面中的工程和父文件夹的名称。

  4. (可选)向开发人员发送电子邮件通知,告知他们所提交的代码的新结果。电子邮件包含的附件中有指向 Polyspace Access Web 界面中结果的链接。

    请参阅发送包含 Polyspace Bug Finder Server 结果的电子邮件通知。

请参阅使用 Jenkins 进行 Polyspace 分析的示例脚本中用于执行这些步骤的脚本示例。

另请参阅

(Polyspace Access) | (Polyspace Access) |

主题