Parasoft C/C++test
可通过将 Parasoft C/C++test static 分析配置为 外部工具来直接在 CLion 上运行,然后使用内置的 SARIF 查看器查看分析结果。
CLion 会调用 C/C++test 命令行启动器(cpptestcli ),它会读取 CLion 生成的编译数据库( compile_commands.json ),并将报告写入项目中。
先决条件
Parasoft C/C++test 已安装在计算机上,并且已知
cpptestcli启动器的路径(例如, /home/<user>/parasoft/cpptest/cpptestcli )。 有关安装和许可证激活说明,请参阅 Parasoft C/C++test 安装指南。项目中的 C/C++test 设置文件(例如 cpptest.localsettings.properties ),用于接受 EULA、提供许可证并列出报告格式设置。 要使用 SARIF 查看器,请在报告格式设置中包含
sarif:report.format=html,xml,sarif report.location=./reports
配置外部工具
为每个分析作用域定义一个外部工具,例如一个用于单文件分析,另一个用于项目级分析
打开 。

点击 Add (
+)。填写必填字段,然后点击 确定。

参数
以下是用于单文件分析的实参示例:
-settings—— 含许可证与报告格式设置的本地配置文件。-compiler—— 匹配工具链的编译器配置 id。-config—— 测试配置。 可以使用内置配置,如图所示,也可以指向 .properties 文件,例如"$ProjectFileDir$/[rules].properties"。 上例中的内置配置是 Parasoft 为 Modern C++ 提供的内置配置。 如果许可证包含 MISRA C++ 2023 规则,例如配置为-config "builtin://MISRA C++ 2023"。-input—— 编译数据库,使 cpptestcli 能够获取用于构建每个文件的确切标志或包含项。-resource—— 限制只分析当前文件的作用域。 进行项目级别分析时不需要此实参,因为项目级别是 cpptestcli 的默认作用域。
运行分析
要运行分析,请在主菜单中选择 。

启动器输出会显示在 工具窗口中。

运行结束后,C/C++test 会将报告写入 -report 目录(例如 reports/report.sarif 、 report.html 和 report.xml )。 每次运行都会覆盖 SARIF 报告。
要通过键盘快捷键运行工具,可在 中分配,在 外部工具 下。
在 SARIF 查看器中查看结果
在 工具窗口中,按两次点击生成的 reports/report.sarif 文件。 分析结果将在 工具窗口的 SARIF 结果 标签页打开,按工具和规则分组。 每个结果会显示规则信息及其源代码位置。

要打开某个分析结果的代码,请按两次点击它,按下 Enter ,或从上下文菜单中选择 跳转到源。

CLion 会记住已导入报告的路径,并在重新打开项目时自动加载。
有关详细信息,请参阅 SARIF Viewer。