Clang-Tidy


文档摘要

正如前一章中所讨论的,Clang-Tidy 检查依赖于抽象语法树(AST)所提供的高级匹配功能。然而,这种方法可能不足以检测更复杂的问题,例如生命周期问题(即当一个对象或资源在其释放或超出作用域后仍访问或引用,这可能导致不可预测的行为或程序崩溃)。在本章中,我们将介绍基于控制流图(CFG)的高级代码分析工具。Clang 静态分析器是这类工具的一个优秀示例,而 Clang-Tidy 也集成了 CFG 的某些方面。我们将从典型的使用示例开始,然后深入探讨实现细节。本章将以一个自定义检查作为结尾,该检查采用高级技术,并将类复杂性的概念扩展到方法实现上。我们将定义环形复杂度,并展示如何使用 Clang 提供的 CFG 库来计算它。

正如前一章中所讨论的,Clang-Tidy
检查依赖于抽象语法树(AST)所提供的高级匹配功能。然而,这种方法可能不足以检测更复杂的问题,例如生命周期问题(即当一个对象或资源在其释放或超出作用域后仍访问或引用,这可能导致不可预测的行为或程序崩溃)。在本章中,我们将介绍基于控制流图(CFG)的高级代码分析工具。Clang
静态分析器是这类工具的一个优秀示例,而 Clang-Tidy 也集成了 CFG
的某些方面。我们将从典型的使用示例开始,然后深入探讨实现细节。本章将以一个自定义检查作为结尾,该检查采用高级技术,并将类复杂性的概念扩展到方法实现上。我们将定义环形复杂度,并展示如何使用
Clang 提供的 CFG 库来计算它。

本章将包含以下内容:

  • 静态分析是什么

  • CFG——静态分析中使用的基本数据结构

  • 如何在一个自定义的Clang-Tidy检查中使用CFG

  • Clang提供的分析工具及其局限性


发布者: 作者: 转发
评论区 (0)
U