检查并审查编码标准违规
使用 Polyspace®,您可以检查您的 C/C++ 代码是否违反了 MISRA C™:2023 等多种外部编码标准。遵守编码标准可以减少缺陷数量并提高代码质量。
Polyspace 可以检测多种标准的编码违规,包括 MISRA C++:2023、MISRA C:2023 和 AUTOSAR C++:14。有关支持的标准的列表,请参阅编码标准。
配置编码规则检查
指定标准和预定义检查项子集
通过 Polyspace 分析选项指定编码规则。当您运行 Bug Finder 时,分析会查找编码违规并运行其他检查。您可以禁用其他检查并仅查找编码违规。
在 Polyspace 用户界面中(桌面端产品),相应选项位于编码标准和代码度量节点下的配置窗格中。
对于 C 代码,请使用下列选项之一:
对于生成代码,请启用特定于生成代码的选项。
对于生成代码,请启用特定于生成代码的选项。
对于 C++ 代码,请使用下列选项之一:
您可以指定预定义的规则子集,例如 MISRA C:2012 的 mandatory 子集。这些子集通常由标准定义。
您还可以使用正则表达式定义标识符的命名约定。请参阅Enforce Naming Conventions for C/C++ Variables and Functions。
自定义检查项子集
您还可以根据编码标准自行指定规则子集,而非指定预定义子集。
用户界面(仅限桌面端产品)
选择编码标准。从规则子集的下拉列表中,选择 from-file。点击编辑。
在检查项选择窗口中,编码标准将突出显示在左侧窗格中。在右侧窗格中,选择您要在分析中包含的规则。
选择规范 > 软件复杂性检查项时,请审查它们的阈值。如果默认阈值不可接受,请在阈值列中指定一个合适的阈值。请参阅
检查规范 (-guidelines)
。选择自定义规则时,请审查规则的模式和约定。请参阅
检查自定义规则 (-custom-rules)
。
保存规则选择时,配置将保存到一个 XML 文件中,您可以重复使用该文件以进行多个分析。针对所有编码标准选择的规则都包含在这一个文件中。您可以在多个工程中重复使用此文件,以在团队或组织中强制应用通用的编码标准。要在 Polyspace 用户界面中的另一个工程中重复使用此文件,请执行以下操作:
在工程配置中选择一个编码标准。从规则子集的下拉列表中,选择 from-file。
点击编辑并浏览到文件位置。或者,输入文件名作为
使用文件设置检查项 (-checkers-selection-file)
选项的参量。
命令行. 使用 Polyspace 桌面端产品,您可以在用户界面中创建一个编码标准 XML 文件,然后使用此文件进行命令行分析。请使用使用文件设置检查项 (-checkers-selection-file)
选项提供此 XML 文件。
使用 Polyspace Server 产品时,您必须从头开始创建编码标准 XML。根据您要启用的标准,为
中的某个文件创建一个可写副本,并使用该 XML 文件中的条目关闭规则(模板中启用了对应标准的所有规则)。其中,polyspaceserverroot
\polyspace\examples\doc_cxx\coding_standards_XML
是 Polyspace Server 产品的根安装文件夹,例如 polyspaceserverroot
C:\Program Files\Polyspace Server\R2024b
。
例如,要关闭 MISRA C:2012 规则 8.1,请在文件 misra_c_2012_rules.xml
的副本中使用以下条目:
<standard name="MISRA C:2012"> ... <section name="8 Declarations and definitions"> ... <check id="8.1" state="off"> </check> ... </section> ... </standard>
使用规范检查项时,请在 threshold
标记之间指定它们的阈值。例如,要激活圈复杂度超出阈值
检查项,并将该检查项的阈值设置为 5,请在 guidelines.xml
的副本中使用以下条目:
<check id="SC18" state="on"> <threshold>5</threshold> </check>
要在 Bug Finder 中使用此 XML 文件进行 MISRA C:2012 分析,请输入以下命令:
polyspace-bug-finder -sources filename -misra3 from-file -checkers-selection-file misra_c_2012_rules.xml
有关规则 ID 和节名称的完整列表,请参阅编码标准。
注意
在以后的版本中,检查项配置文件的 XML 格式可能会有所变化。
仅检查编码标准
Bug Finder 分析会检查 C/C++ 代码是否:
存在一组默认的缺陷 (Bug)
遵守您指定的任何编码标准。
要仅检查编码标准,请完全禁用缺陷检查。为查找缺陷 (-checkers)
选项指定 none。
审查编码违规
分析完成后,您可以在结果列表窗格中查看编码标准违规。选择某个违规可在结果详细信息窗格中查看更多详细信息,还可在源窗格中查看源代码。
编码标准违规在源代码中用 图标指示。
有关进一步的步骤,请参阅审查分析结果或在 Web 浏览器中审查 Polyspace Bug Finder 结果。
生成报告
您可以使用针对编码标准明确定义的模板生成报告。请使用 CodingStandards 模板。此模板:
仅报告分析结果中的编码标准违规,并忽略其他类型的结果,例如缺陷、运行时错误或代码度量。
在报告中为每个编码标准创建单独的章节,这些章节将概述并列出违反该标准的所有违规项。
要指定报告模板,请使用 Bug Finder 和 Code Prover 报告 (-report-template)
选项。