主要内容

检查是否违反编码标准

与Polyspace®,您可以检查您的C/C++代码是否违反了诸如MISRA C之类的编码规则®:2012规则。遵守编码规则可以减少缺陷数量并提高代码质量。

Polyspace可以检测违反这些规则的行为:

  • MISRA - C: 2004

  • MISRA - C: 2012

  • 米斯拉®C++

  • JSF AV C++

  • AUTOSAR c++ 14(仅Bug仪)

  • 证书®C(仅Bug仪)

  • 证书C++(仅Bug仪)

  • 国际标准化组织®/ IEC TS 17961(仅Bug仪)

  • 指导方针

配置编码规则检查

指定标准和预定义检查器子集

通过多边形空间分析选项指定编码规则。当您运行Bug Finder或Code Prover时,除了其他检查外,分析还会查找编码规则冲突。您可以禁用其他检查并仅查找编码规则冲突。

在Polyspace用户界面(桌面产品)中,选项位于s manbetx 845配置窗格下编码标准和编码度量节点。

对于C代码,使用以下选项之一:

对于C++代码,使用下列选项之一:

您可以指定预定义的规则子集,例如,强制性的MISRA - C: 2012。这些子集通常由标准定义。

还可以使用正则表达式定义标识符的命名约定。看见创建自定义编码规则

自定义检查器子集

您可以从编码标准中指定自己的规则子集,而不是预定义的子集。

用户界面(仅限桌面产品)s manbetx 845

  1. 选择编码标准。从规则子集的下拉列表中,选择从文件.点击编辑

  2. 结果选择窗口中,编码标准在左侧窗格中突出显示。在右侧窗格中,选择要包含在分析中的规则。

    • 在选择指导方针>软件的复杂性检查者,检查他们的阈值。如果默认阈值不可接受,请在阈值列。看到的。

    • 在选择自定义规则,检查模式公约的规则。看到检查自定义规则(-custom rules)(Polyspace Bug查找器访问)

保存规则选择时,配置将保存在一个XML文件中,可用于多次分析。同一文件包含为所有编码标准选择的规则。您可以跨多个项目重用此文件,以在团队或组织中实施通用编码标准。要在Polyspace用户界面的另一个项目中重用此文件,请执行以下操作:

命令行。使用Polyspace桌面产品,您可以在用户界面中创建s manbetx 845一个编码标准XML文件,然后使用该文件进行命令行分析。为这个XML文件提供选项按文件设置检查器(-checkers选择文件)

使用Polyspace Server产品,您必须从头s manbetx 845创建一个编码标准XML。根据您想要启用的标准,创建一个文件的可写副本polyspaceserverroot\ \工具箱\ polyspace_bug_finder_server帮助\ \ coding_standards_XML例子并关闭使用XML文件中的条目的规则(来自标准的所有规则都在模板中启用)。在这里,polyspaceserverroot是Polyspace Server产品的根安装文件夹,例如,s manbetx 845C:\Program Files\Polyspace服务器\ R2019a

例如,要关闭MISRA C:2012规则8.1,请在该文件的副本中使用此条目misra_c_2012_rules.xml:

…< / >节……< /标准>

使用准则检查器时,请在阈值标签。例如,激活检查器圈复杂度超过阈值并将检查器的阈值设置为5,在guidelines.xml:

 5 

要在Bug Finder中使用XML文件进行MISRA C:2012分析,请输入:

polyspace-bug-finder来源文件名-来自文件检查器选择文件misra_c_2012_rules.xml的misra3

有关规则id-s和节名称的完整列表,请参阅:

笔记

检查器配置文件的XML格式可以在未来的版本中更改。

仅检查编码标准

只可检查编码标准:

  • 在Bug Finder中,禁用缺陷检查。使用这个选项查找缺陷(-checker)

  • 在代码验证器中,只检查源代码遵从性。使用这个选项验证水平(——)(多空间代码验证程序)

    这些规则在代码验证程序分析的后期阶段进行检查:MISRA C:2004规则9.1、13.7和21.1,以及MISRA C:2012规则2.2、9.1、14.3和18.1。如果在源代码符合性检查时停止代码验证程序,则分析可能不会发现所有违反这些规则的情况。根据您对选项的选择,您还可以看到结果的差异验证水平(——)(多空间代码验证程序). 例如,代码验证程序可能在第一次过程中怀疑某个变量未初始化,但在第二次过程中证明该变量已初始化。在这种情况下,您会在第一遍中看到违反MISRA C:2012规则9.1的情况,但在第二遍中不会看到。

检查违反编码规则的情况

分析后,您会在上看到编码标准冲突成绩表窗玻璃选择一个冲突以查看有关该冲突的更多详细信息结果细节窗格和源代码窗格。

违反编码标准在源代码中用图标。

有关进一步的步骤,请参阅回顾分析结果

生成报告

您可以使用为编码标准明确定义的模板生成报告。使用CodingStandards样板此模板:

  • 仅报告分析结果中的编码标准冲突,并忽略其他类型的结果,如缺陷、运行时错误或代码度量。

  • 在报告中为每个编码标准创建单独的章节。本章概述了所有违反本标准的行为,然后列出了每种违反行为。

要指定报告模板,请使用选项Bug查找器和代码验证器报告(-report-template)

相关的话题