主要内容

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

在桌面端运行 Polyspace Bug Finder

Polyspace® Bug Finder™ 可标识 C 和 C++ 嵌入式软件中的运行时错误、并发性问题、安全漏洞和其他缺陷。Bug Finder 使用静态分析(包括语义分析)来分析控制流、数据流和过程间行为。Bug Finder 在检测到缺陷后会立即突出显示缺陷,从而让您可以在开发过程的早期阶段分类和修复 Bug。

您可以从 Polyspace 用户界面或者使用脚本对完整的 C/C++ 工程运行 Bug Finder。请参阅:

  • 在用户界面中运行 Polyspace

    如果这是您首次使用 Polyspace,您可能希望从 Polyspace 用户界面开始。您可以从工程设置向导、协助配置和摘要分析日志等功能获得帮助。

  • 在 Windows 或 Linux 命令行上运行 Polyspace

    在 Polyspace 用户界面中设置工程并完成几次试运行后,您可以将配置导出为自动或按需运行的脚本。您还可以直接从操作系统中的命令行直接运行 Polyspace 分析。然后,您可以将命令保存在批处理文件 (Windows®) 或 shell 脚本 (Linux®) 中供以后运行。如果您使用持续集成工具(例如 Jenkins®)运行 Polyspace Server 端产品,则可以从 Polyspace 桌面端产品重复使用您的脚本。

  • 在 MATLAB 中运行 Polyspace

    如果您安装了 MATLAB®,编写脚本来运行 Polyspace 分析则会特别容易。您可以利用在 MATLAB 环境中编写脚本的所有优势,例如,有关函数语法的自动帮助。分析后,您可以使用 MATLAB 图形和可视化工具创建自己的可视化结果。

示例文件

要执行本教程中的步骤,请从 polyspaceroot\polyspace\examples\cxx\Bug_Finder_Example\sources 中将文件复制到另一个文件夹。其中,polyspaceroot 是 Polyspace 的安装文件夹,例如 C:\Program Files\Polyspace\R2025a

在用户界面中运行 Polyspace

打开 Polyspace 用户界面

双击 polyspaceroot\polyspace\bin 中的 polyspace 可执行文件。其中,polyspaceroot 是 Polyspace 的安装文件夹,例如 C:\Program Files\Polyspace\R2025a。另请参阅安装文件夹

如果您在桌面端或者在 Windows 的开始菜单中设置了 Polyspace 的快捷方式,请双击该快捷方式。

添加源文件

要运行分析,您必须新建一个 Polyspace 工程。Polyspace 工程指向您的文件系统上的源文件夹和包含文件夹。

起始页窗格的左侧,点击启动新工程。或者,选择文件 > 新建工程

提供工程名称后,在接下来的屏幕上,添加您的源文件夹和包含文件夹(两个文件夹可以是同一个)。在本教程中,请添加您已在其中保存源文件和包含文件的文件夹的路径。

源文件夹和包含文件夹添加完成后,您会在工程浏览器窗格中看到一个新工程。您的源文件夹将被复制到工程中的第一个模块。您可以在以后通过右键点击工程来添加更多文件夹。如果您以后添加文件夹,则必须显式将其复制到一个模块。

配置并运行 Polyspace

您可以更改与 Polyspace 分析关联的默认选项。

点击您的工程模块中的配置节点。在配置窗格上,根据需要更改选项。例如,在编码规则和代码度量节点上,选择检查 MISRA C:2004

有关详细信息,请查看每个选项的工具提示。点击更多帮助链接可了解有关选项的快捷帮助。

要启动分析,请点击顶部工具栏中的运行 Bug Finder。如果该按钮指示的是 Code Prover,请点击按钮旁边的箭头来切换到 Bug Finder。

输出摘要窗口上关注分析进度。分析完成后,结果将自动打开。

其他信息

请参阅:

WindowsLinux 命令行上运行 Polyspace

您可以通过 Windows 或 Linux 命令行使用批处理 (.bat) 文件或 shell (.sh) 脚本运行 Bug Finder。

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

为免于键入命令的完整路径,请将路径 polyspaceroot\polyspace\bin 添加到您的操作系统上的 Path 环境变量。其中,polyspaceroot 是 Polyspace 的安装文件夹,例如 C:\Program Files\Polyspace\R2025a

导航到已保存文件的文件夹(使用 cd)。输入以下命令:

polyspace-bug-finder -sources numerical.c,dataflow.c -I . -results-dir .
其中,. 表示当前文件夹。使用的选项包括:

  • -sources:指定逗号分隔的源文件。

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

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

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

分析完成后,结果将保存在 ps_results.psbf 文件中。您可以从 Polyspace 用户界面打开此文件。例如,输入以下命令:

polyspace ps_results.psbf

除了直接在命令行上指定逗号分隔的源文件之外,您还可以将源文件列在一个文本文件中(每行一个文件)。可以使用 -sources-list-file 选项指定此文本文件。

其他信息

请参阅:

MATLAB 中运行 Polyspace

在从 MATLAB 中运行 Polyspace 之前,必须将已安装的 Polyspace 与 MATLAB 相关联。请参阅将 Polyspace 与 MATLAB 和 Simulink 集成

要运行分析,请使用 polyspace.Project 对象。该对象有两个属性:

  • Configuration:可以使用此属性指定分析选项,例如源文件夹、包含文件夹、编译器文件夹和结果文件夹。

  • Results:分析完成后,可以使用此属性将分析结果读取到一个 MATLAB 表中。

要运行分析,请使用此对象的 run 方法。

要对 polyspaceroot\polyspace\examples\cxx\Bug_Finder_Examples\sources 中的示例文件 numerical.c 运行 Polyspace,请在 MATLAB 命令提示符处输入以下命令。

proj = polyspace.Project

% Configure analysis
proj.Configuration.Sources = {fullfile(polyspaceroot, 'polyspace', ... 
    'examples', 'cxx', 'Bug_Finder_Example', 'sources', 'numerical.c')};
proj.Configuration.TargetCompiler.Compiler = 'gnu4.9';
proj.Configuration.EnvironmentSettings.IncludeFolders = {fullfile(polyspaceroot, ...
'polyspace', 'examples', 'cxx', 'Bug_Finder_Example', 'sources')}
proj.Configuration.ResultsDir = fullfile(pwd,'results');

% Run analysis
bfStatus = proj.run('bugFinder');

% Read results
resObj = proj.Results;
bfSummary = getSummary(resObj, 'defects');
bfResults = getResults(resObj, 'readable');

分析完成后,结果将保存在 ps_results.psbf 文件中。您可以从 Polyspace 用户界面打开此文件。例如,输入以下命令:

resultsFile = fullfile(proj.Configuration.ResultsDir,'ps_results.psbf');
polyspaceBugFinder(resultsFile)

其他信息

请参阅:

另请参阅

主题