用于 Polyspace 分析的选项文件
要使 Polyspace 分析配置适应您的开发环境和需求,您必须通过命令行选项(例如 -compiler)修改默认配置。选项文件是收集多个选项并在工程之间重复使用它们的便捷方式。
什么是选项文件
选项文件是每行包含一个选项的文本文件。例如,选项文件的内容看起来与下面的例子相似:
# Options for Polyspace analysis # Options apply to all projects in Controller module -compiler visual16.x -D _WIN32 -code-behavior-specifications "Z:\utils\polyspace\forbiddenfunctions.xml"
# 开头的行表示注释,用于提高可读性。这些行在分析期间将被忽略。指定选项文件
根据运行分析的平台,您可以通过下列方式之一指定选项文件。
命令行
在命令行(和脚本)中,将一个选项文件指定为 -options-file 选项的参量。
例如,对于以下命令:
polyspace-bug-finder -sources file.c -compiler visual16.x -D _WIN32 -code-behavior-specifications "Z:\utils\polyspace\forbiddenfunctions.xml"
-compiler visual16.x -D _WIN32 -code-behavior-specifications "Z:\utils\polyspace\forbiddenfunctions.xml"
Z:\utils\polyspace\ 路径中的 options.txt 文件中,并将命令缩短为:polyspace-bug-finder -sources file.c -options-file "Z:\utils\polyspace\options.txt"
您可以将选项文件与 Polyspace 命令配合使用:
polyspace-bug-finderpolyspace-bug-finder-serverpolyspace-bug-finder-accesspolyspace-code-proverpolyspace-code-prover-server
IDE
如果您使用 IDE 扩展运行 Polyspace as You Code,则通常会以不同的方式指定下面三组选项:
| 选项组 | 扩展设置 |
|---|---|
编译选项:您可以从现有工件(例如编译命令和 JSON 编译数据库)中提取编译选项。 您还可以将所有编译选项收集在一个选项文件中,并在适当的扩展设置中指定选项文件路径。 |
|
检查项:您可以使用检查项选择向导来选择检查项。 | |
其他剩余选项:所有剩余选项都可以收集到另一个选项文件中,并入相应的扩展设置。 |
|
如果将选项文件同时用于编译选项和其他选项,其结果与指定单个选项文件并将其他选项追加到编译选项的结果相同。另请参阅指定多个选项文件。
有关 IDE 扩展的详细信息,请参阅:
Configure Polyspace as You Code Extension in Visual Studio (Polyspace Access)
Configure Polyspace as You Code Extension in Visual Studio Code (Polyspace Access)
Configure Polyspace as You Code Plugin in Eclipse (Polyspace Access)
Polyspace 用户界面
在 Polyspace 桌面端产品的用户界面中,您通常不需要选项文件。大多数选项都可以在 Polyspace 用户界面的配置窗格中指定。
但是,某些选项仅在命令行中可用,并且在用户界面中没有对应选项。如果您必须指定多个仅可在命令行中使用的选项,则可以将它们收集到一个选项文件中,例如 commandLineStyleOptions.txt。在配置窗格的高级设置节点下,在其他字段中指定选项文件的绝对路径:
-options-file C:\psconfig\commandLineStyleOptions.txt
指定多个选项文件
您可以在分析中指定多个选项文件。例如,在命令行中,您可以输入以下命令:
polyspace-bug-finder -sources file.c -options-file opts1.txt -options-file opts2.txt
当您在分析中指定多个选项文件时,选项文件中的所有选项都将追加到分析命令。例如,前面的命令等效于使用单个选项文件,该文件将 opts1.txt 的内容置于 opts2.txt 的内容上方。
如果一个选项出现在存在参量冲突的多个文件中,则以最后一个选项文件中的参量为准。例如,在前面的命令中,如果 opts1.txt 包含:
-checkers all -misra3 all
opts2.txt 包含:-misra3 single-unit-rules
-misra3 选项,分析仅使用 single-unit-rules 参量。 您可以使用这种选项文件堆叠来覆盖选项。例如,假设您使用一个适用于整个团队的只读选项文件,但希望覆盖该文件中的某些选项。您可以通过创建另一个选项文件并在团队级选项文件后指定使用您自己的选项文件来覆盖选项。
您还可以在选项文件中指定 -options-file 选项,并以此方式聚合多个选项文件。