首页
/ CodeChecker 6.25.0版本深度解析:静态代码分析工具的重大升级

CodeChecker 6.25.0版本深度解析:静态代码分析工具的重大升级

2025-06-19 12:19:00作者:幸俭卉

CodeChecker作为一款开源的静态代码分析工具,在6.25.0版本中带来了多项重要改进和新功能。本文将深入解析这次更新的技术亮点,帮助开发者更好地理解和使用这些新特性。

核心功能增强

全新的指南统计页面

6.25.0版本引入了一个全新的指南统计页面,专门用于生成SEI Cert和CWE Top 25合规性报告。这个功能对于需要遵循特定编码规范的项目特别有价值。

该页面展示了分析程序对编码指南(如SEI Cert C/C++)的合规情况,包括:

  • 每个指南规则对应的检查器
  • 检查器的配置状态(启用/禁用)
  • 每个指南规则的未解决和已关闭报告

用户可以将这些统计表格导出为HTML或CSV格式,方便进一步分析和报告。目前支持的首批指南包括SEI Cert C、SEI Cert C++和CWE Top 25。

Facebook Infer分析器集成

此次更新新增了对Facebook Infer分析器的支持。Facebook Infer是一款知名的开源静态代码分析工具,能够检测C/C++代码中的潜在问题。

虽然这个分析器默认不启用,但开发者现在可以方便地测试和使用它。这为CodeChecker用户提供了更多样化的分析选择,可以根据项目需求选择最适合的分析工具组合。

重要变更与兼容性说明

检查器启用/禁用语法的明确化

6.25.0版本解决了检查器启用/禁用命令的歧义问题。现在当命令存在歧义时,CodeChecker analyze会直接报错而非警告,要求开发者明确指定意图。

例如:

  • security同时是检查器组和配置文件的名称,现在必须明确指定为prefix:securityprofile:security
  • clang-diagnostic-format必须明确指定为checker:clang-diagnostic-formatprefix:clang-diagnostic-format

新增的命名空间包括:

  • prefix: - 匹配以指定前缀开头的检查器
  • profile: - 匹配配置文件
  • checker: - 匹配单个检查器
  • guideline: - 匹配属于某个指南的检查器
  • severity: - 匹配特定严重级别的检查器

跳过文件处理逻辑变更

跳过文件(skip file)的处理方式发生了重要变化:

  • 现在跳过文件只会跳过列出的文件的分析,而不会过滤掉这些文件中的报告
  • 默认情况下不再过滤跳过文件中的报告,这可能导致比之前更多的报告出现
  • 旧版行为仍可通过--drop-reports-from-skipped-files参数使用

这一变更有助于发现从非跳过代码开始,结束于跳过文件中的真正问题(特别是与CTU和头文件相关的发现)。

其他重要变更

  • guideline:sei-cert不再可用,已拆分为guideline:sei-cert-cguideline:sei-cert-cpp
  • 不再支持CodeChecker -e W*语法,Clang警告现在统一使用clang-diagnostic-*格式
  • --saargs--tidyargs--cppcheckargs标志已弃用,推荐使用新的分析器配置选项

分析器改进

6.25.0版本对分析器进行了多项改进:

  • 修复了检查器启用/禁用的歧义问题
  • 不再捕获cc1的日志
  • 新增了对多个GCC编译器标志的忽略处理
  • 默认禁用clang-diagnostic-error检查器
  • 新增了Facebook Infer分析器支持
  • 引入了cc-verbatim-args-file配置选项

命令行与服务器增强

本次更新还包含多项CLI和服务器改进:

  • 修复了HTML导出中的路径处理问题
  • 改进了数据库连接前的自动添加功能
  • 优化了路径解析和端点解析
  • 增强了报告导出功能
  • 改进了SQL查询性能
  • 优化了环境初始化处理

环境与工具链更新

6.25.0版本新增了对PVS-Studio分析器报告转换的支持,使CodeChecker能够处理PVS-Studio的报告。此外还更新了多项依赖库,提升了系统的安全性和稳定性。

总结

CodeChecker 6.25.0版本带来了多项重要改进,特别是在编码规范合规性报告和分析器支持方面。这些变化使CodeChecker成为更加强大和灵活的静态代码分析工具,能够更好地满足现代软件开发的需求。开发者应当特别注意向后不兼容的变更,并根据项目需求调整使用方式。

对于需要严格遵循编码规范的项目,新的指南统计功能将特别有价值;而对于希望使用更多样化分析工具的项目,新增的Facebook Infer支持提供了更多选择。整体而言,这次更新进一步巩固了CodeChecker作为专业级静态代码分析工具的地位。

登录后查看全文
热门项目推荐

项目优选

收起
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
178
262
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
867
513
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
129
183
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
265
305
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
398
371
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.07 K
0
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
93
15
note-gennote-gen
一款跨平台的 Markdown AI 笔记软件,致力于使用 AI 建立记录和写作的桥梁。
TSX
83
4
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
598
57
GitNextGitNext
基于可以运行在OpenHarmony的git,提供git客户端操作能力
ArkTS
10
3