AI 已经能辅助生成和修改 C/C++ 代码,告警整改却仍可能卡在开发者的准备工作上:找到代码、查清规则,再把信息交给 AI。对需要持续执行编码规范的团队,这些重复操作会消耗本应用于分析问题和审查修改的时间。
一条具体的修复任务,需要同时明确工程上下文、违规位置与规则要求。Parasoft C/C++test 2026.1 通过 MCP 工具和 AI Agent Skills,将分析结果与规则文档接入处理过程。下面结合官方脚本与配置,拆解一条已知违规的修复流程。
一、分析依据来自工程构建,不只是代码片段
官方 Skills 仓库的 `scripts/cpptest-analyze.sh` 包含以下 CMake 分析命令,代码仅调整换行:
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -S . -B .build cmake --build .build cpptestcli -quiet -compiler gcc_13-64 -config "builtin://Recommended Rules" -module . -input .build/compile_commands.json第一条命令导出编译数据库,第二条完成构建,随后 C/C++test 读取编译数据库执行分析。`compile_commands.json` 记录各编译单元的编译调用,使分析能够结合相应头文件路径、宏定义及编译参数;该导出选项适用于 CMake 的 Makefile 和 Ninja 生成器。
`gcc_13-64` 是示例编译器标识,实际项目应匹配自身工具链。示例使用的是 `Recommended Rules`,不能直接当作 MISRA 或 CERT 全套规则检查;项目采用哪些规则,需要通过对应配置确定。
编译上下文与规则配置共同确定检查依据。将它们固定到脚本中,既便于重复调用,也为后续修改前后的结果核对提供一致的执行入口。
二、通过 MCP 获取具体告警与对应规则
官方 Demo 的 `.vscode/mcp.json` 给出了可引用的配置:
{ "servers": { "cpptest-std-mcp": { "type": "stdio", "command": "/opt/parasoft/cpptest/integration/mcp/cpptestmcp", "args": [] } }, "inputs": [] }这是 VS Code 项目级 MCP 配置示例,通过 `stdio` 启动 C/C++test MCP Server。`command` 需匹配本机安装路径;其他 Agent 应按各自客户端的格式配置。运行前,C/C++test 需具有有效许可证,AI Agent 也需完成相应配置与授权。
与本文直接相关的工具有两个:
| 工具 | 提供的信息 | 在整改中的作用 |
|---|---|---|
get_violations_from_report_file | 从 XML 报告提取违规,支持按规则、严重程度和文件筛选 | 确定工具实际报告了什么 |
get_rule_documentation | 按准确的规则 ID 获取文档 | 为理解问题与修改代码提供依据 |
这两项调用分别回答“项目实际报告了什么”和“对应规则要求什么”。MCP 提供接口,Agent 结合返回信息与源码处理任务,Skill 规定步骤。接入时应检查实际调用记录,确认报告与规则文档确实进入了处理过程。
三、单条修复:读取规则后,再约束修改范围
官方 README 提供了以下任务示例:
Fix and verify CERT_C-DCL00-a: Declare local variable 'sensor' as const at sensor.c:55这条指令将任务限定到指定文件中的一条规则违规,并明确要求验证。文件与行号用于定位,规则 ID 用于查询依据,违规消息描述问题,开发者无需再用开放式“优化代码”请求引导整改。
配套的 `cpptest-fix-one-violation` 先识别用户提供的已知违规,不先扫描整个项目;规则 ID 已知时,调用规则文档工具,再结合源码与规则说明尽量采用最小修改。限定修改范围,有助于将开发者的审查集中在目标违规及其相关影响上。
这里的提效点,是把“定位告警、查规则、整理修改依据”接入一次任务,减少开发者反复准备上下文。
四、将修改结果重新交回检查工具
单条修复只有在明确要求验证时,才调用项目根目录的官方分析脚本:
./cpptest-analyze.sh随后通过报告读取工具核查目标违规是否仍存在。官方 Skill 约定读取 `reports/report.xml`;部署时需校准脚本的报告输出位置,使其与 Skill 的读取路径一致,确保复查使用本轮生成的结果。
官方 CI Demo 进一步将分析、AI 修复与新分支 PR 衔接起来:
修复仍需工程师审查业务语义,目标告警消除也不等于完整合规。
对已有编码规范要求的团队,评估重点可以落在三个可观察的环节:Agent 是否取得对应规则文档,修改是否围绕指定问题,复查是否读取本轮报告。Parasoft 将工程分析与规则依据接入 AI,帮助开发者减少上下文准备,并围绕实际检查结果推进整改。