GCC 静态分析支持

GCC 10 引入静态分析,通过 -fanalyzer 启用。与传统警告相比,它执行的代码分析更全面,开销也更高。

运行 GCC 静态分析

调用 west build 时传入 -DZEPHYR_SCA_VARIANT=gcc,即可运行 GCC 静态分析,例如:

west build -b qemu_x86 samples/userspace/hello_world_user -- -DZEPHYR_SCA_VARIANT=gcc

配置 GCC 静态分析器

可以通过专用选项控制 GCC 静态分析器。

参数

描述

GCC_SCA_OPTS

以分号分隔的 GCC 分析器选项列表。

这些参数可以通过命令行传递,也可以设置为环境变量。

west build -b stm32h573i_dk samples/hello_world -- -DZEPHYR_SCA_VARIANT=gcc -DGCC_SCA_OPTS="-fdiagnostics-format=json;-fanalyzer-verbosity=3"

备注

GCC 静态分析器仍在积极开发,每个新版本都会增加选项。此 page 概述各版本新增的选项和修复。

最新分析器版本

Zephyr 工具链可能未包含最新版 GCC 静态分析器,因此可以使用更新的 GNU Arm embedded toolchain 运行分析,以利用最新版分析器。

west build -b stm32h573i_dk samples/hello_world -- -DZEPHYR_SCA_VARIANT=gcc -DZEPHYR_TOOLCHAIN_VARIANT=gnuarmemb -DGNUARMEMB_TOOLCHAIN_PATH=...