PVS-Studio 7.41:MISRA C 2023,增强的 Unreal Engine 集成,全新日志系统,以及更多
发布: (2026年2月25日 GMT+8 20:18)
4 分钟阅读
原文: Dev.to
Source: Dev.to
PVS‑Studio 7.41 已发布,带来一系列针对 Unreal Engine、MISRA C 2023 支持、IntelliJ IDEA 插件等方面的改进。
MISRA C 2023 支持
- 分析器现在覆盖 86 % 的 MISRA C 2023 标准。
- 计划在后续版本中进一步扩展 MISRA C++ 2023 的覆盖范围。
- 更多信息请参阅官方 MISRA C 2023 页面。
Unreal Engine 集成
- 对 Unreal Engine 项目的诊断能力已增强。
- 修复了在使用引擎容器时 V557 规则的相关问题。
- 解决了虚函数中
final限定符的解析问题。 - 详细使用 PVS‑Studio 与 Unreal Engine 的方法请参见文档。
C# 分析器增强
- 污点分析现在支持对异步函数的 JSON 用户注解,包括标准库类中的异步方法。
- 用户注解机制(在 PVS‑Studio 7.33 中引入)允许通过 JSON 文件提供额外上下文。
- 文档中提供了配置和使用这些注解的指南。
新工具:pvs-fp-cleaner
- 发行版中新增的工具可自动删除冗余的误报标记(抑制诊断的注释)。
- 这消除了手动审查整个代码库的需求。
- 使用说明请参考文档。
新日志系统
- 引入日志系统以收集分析过程中遇到的问题信息,简化技术支持。
- 第一阶段为 C 和 C++ 跨平台分析器添加了扩展日志。
- 未来的版本将把日志扩展到基于 MSBuild 的 C++ 和 C# 分析器。
- 文档中包含更多细节。
IDE 插件更新
- IntelliJ IDEA 插件现在可以将分析报告导出为 CSV 并显示相对路径。
- 修复了打开文档时出现的卡顿问题。
- 插件的更多信息请参见文档。
兼容性和诊断更改
这些更改 与早期分析器版本不兼容;可能需要进行相应调整。
- 分析器输出现在在所有平台上遵循统一的 CSV 格式。
- CSV 转换器生成的报告已更新。
- 诊断规则 V2609 的提示信息已更改,之前被抑制的警告可能会重新出现。
更新的 MISRA 相关诊断
- V2667 – 表达式的值及其持久副作用必须在所有允许的求值顺序下以及线程交叉执行时保持一致。
- V2668 – 宏参数后紧跟
#时不应立即再跟##。 - V2669 – 看起来像预处理指令的标记不应出现在宏参数内部。
- V2670 – 线程对象、同步对象和线程局部存储指针应仅通过相应的标准库函数访问。
- V2671 –
localeconv、getenv、setlocale或strerror返回的指针应视为指向const限定的数据。 - V2672 – 指针之间的减法仅应用于指向同一数组元素的指针。
其他诊断更新
- V3230 – 与
typeof(Nullable)的比较毫无意义;对可空变量调用GetType()永远不会返回Nullable。 - V5339 – OWASP:潜在 RCE 漏洞 – 使用不安全的 GraalVM 上下文处理可能被污染的数据。
- V5340 – OWASP:代码中包含可能改变逻辑的不可见字符;建议在编辑器中启用显示不可见字符的功能。