主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

不要为 (-do-not-generate-results-for) 生成结果。

指定不希望进行分析的文件

描述

此选项仅影响 Bug Finder 分析。

指定不希望进行分析的文件。

默认情况下,结果不会显示在头文件中(除非它们与源文件位于同一文件夹中)。您也可以使用此选项来抑制某些源文件(或与源文件位于同一文件夹中的头文件)的结果。您指定为该选项的输入的源文件或头文件不会从 Polyspace® 分析中删除。此选项仅抑制结果。例如,如果您抑制了包含编译错误的文件的结果,分析仍然会显示这些编译错误。

如果您使用选项为源生成结果 (-generate-results-for) 在某些包含文件夹中显示结果,则可以使用此选项来抑制这些包含文件夹中的某些子文件夹或文件的结果。

设置选项

使用以下方法之一设置选项:

  • Polyspace 用户界面(仅限桌面端产品):在工程配置中,选择输入和插桩节点,然后为该选项选择一个值。

  • Polyspace 平台用户界面(仅限桌面端产品):在工程配置中,在静态分析选项卡上,选择缺陷和编码标准节点,然后为该选项选择一个值。

  • 命令行和选项文件:请使用 -do-not-generate-results-for 选项。请参阅命令行信息

为何使用此选项

使用此选项可查看与您最相关的头文件中的结果。

例如,默认情况下,结果生成在与源文件位于同一文件夹中的头文件中。如果您对这些头中的检查结果不感兴趣,请更改此选项的默认值。

请注意,在 Polyspace as You Code 中,默认行为是甚至不分析非源文件夹中的头文件。您可以使用此选项将未分析文件的范围扩展到所有头或头的一个不同子集。另请参阅Analysis Scope of Polyspace as You Code (Polyspace Access)

设置

默认值include-folders

include-folders

不为包含文件夹(及其子文件夹)中的头文件生成结果。

包含文件夹是指您添加到 Polyspace 工程的包含文件夹中的文件夹(或在命令行中使用参量 -I)。

如果包含文件夹是源文件夹的子文件夹,即使指定选项值为 include-folders,也会生成该包含文件夹中的文件的结果。在这种情况下,请使用选项值自定义,并显式指定要忽略的包含文件夹。

all-headers

未生成所有头文件(.h.hpp)的结果。头文件可以与源文件位于同一文件夹中,也可以位于源文件文件夹的子文件夹中,或位于包含头文件的文件夹中。

源文件是您添加到 Polyspace 工程的文件夹中的文件(或在命令行中使用参量 -sources)。

包含文件夹是指您添加到 Polyspace 工程的包含文件夹中的文件夹(或在命令行中使用参量 -I)。

custom

未生成您指定的文件的结果。如果您输入文件夹名称,则该文件夹(及其子文件夹)中的文件将不会显示在搜索结果中。

点击 添加一个字段。输入文件或文件夹名称。

提示

  1. 将此选项与选项 Generate results for sources and (-generate-results-for) 的适当值结合使用。

    如果您选择自定义,且两个选项的值冲突,则更具体的值决定结果的显示。例如,在下面的示例中,选项为源代码和以下项生成结果的值更具体。

    为源代码和以下项生成结果不为以下项生成结果最终结果

    自定义

    C:\Includes\Custom_Library\

    自定义

    C:\Includes

    结果显示在 C:\Includes\Custom_Library\ 及其子文件夹中的头文件中,但未生成其他头文件在 C:\Includes 中的结果。

    自定义

    C:\Includes\my_header.h

    自定义

    C:\Includes\

    仅在 C:\Includes\ 下的头文件 my_header.h 中显示结果,但不会为 C:\Includes\ 及其子文件夹中的其他头文件生成结果。

    同时使用这两个选项,您可以抑制某个文件夹中所有文件的结果,但取消抑制这些文件夹中的选定文件。

  2. 您还可以使用选项 -classification 显示或隐藏一组文件的结果。此选项允许您定义文件集并为这些文件集附加行为。如果对文件集中的所有文件指定以下行为,则与在文件上使用选项 -do-not-generate-results-for 效果相同:

    <show-results value="false"/>
    选项 -classification 支持指定通配符字符,例如 ?*,以指定文件和文件夹模式。有关详细信息,请参阅:

  3. 如果缺陷或编码违规涉及两个文件,而您未为其中一个文件生成结果,则该缺陷或违规仍会显示。例如,如果您在文件 myFile.cppmyFile.h 中定义了两个名称相似的变量,即使您没有生成 myFile.h 的结果,也会违反 MISRA™ C++ Rule 2-10-1。MISRA C++ 规则 2-10-1 规定,不同的标识符必须在排版上无歧义。

    缺陷或编码规则可能涉及多个文件,如果其检查的是在链接多个翻译单元时出现或检测到的问题。例如:

  4. 如果结果(编码违规或 Bug Finder 缺陷)位于宏内,Polyspace 通常会在宏定义处显示结果,而不是宏出现处,以便您只需审查一次结果。即使宏在被抑制的文件中使用,其结果仍会在宏定义中显示,如果该定义出现在未被抑制的文件中

命令行信息

参数:-do-not-generate-results-for
值:all-headers | include-folders | custom=file1[,file2[,...]] | custom=folder1[,folder2[,...]]
示例 (Bug Finder):polyspace-bug-finder -lang c -sources file_name -misra2 required-rules -do-not-generate-results-for custom="C:\usr\include"
示例 (Bug Finder Server):polyspace-bug-finder-server -lang c -sources file_name -misra2 required-rules -do-not-generate-results-for custom="C:\usr\include"

版本历史记录

在 R2016a 中推出