运行 Clang 静态分析

静态分析是一种在不执行源代码的情况下分析源代码的方法。它的一个应用是查找代码气味和 bug。

Fuchsia 使用 Clang 作为其编译器。Clang 拥有多个用于静态分析代码的工具。Fuchsia 支持大量实用的警告消息,并且在编译时会显示错误。

前提条件

在进行静态分析之前,请确保满足以下条件:

  • 工具链:您可以使用预构建的工具链,也可以编译工具链。如需了解如何编译工具链,请参阅工具链指南。注意:本指南假定您使用预构建工具链。
  • 编译数据库:您需要编译数据库才能使用 clang-tidy 和 Clang 静态分析器。它由 fx set 在 build 目录的根目录下自动创建。## Clang 简洁

如需更详细的指南,请点击此处

Clang 静态分析器

前提条件

安装 scan-build-py

pip install scan-build --user

您可能会收到一条警告,指出 ~/.local/bin 不属于 PATH。您可以将其添加到 PATH 环境变量中,也可以全局安装 scan-build(不带 --user 标志)。

运行

在您的 Fuchsia 目录中,运行 Clang 静态分析器:

analyze-build --cdb compile_commands.json --use-analyzer path/to/checkout/prebuilt/third_party/clang/linux-x64/bin/clang --output path/to/output

查看结果

使用 Chrome 查看 Clang 静态分析器的结果:

chrome path/to/output/scan-build-date-hash/index.html

资源