静态分析是一种在不执行源代码的情况下分析源代码的方法。它的一个应用是查找代码气味和 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