静态分析

ArduPilot 常用两种工具对代码库进行静态分析,即 clang 的 "扫描构建 "选项和 Coverity。

Clang Scan-Build

您可以使用 autotest 进行静态分析:

./工具/自动测试/自动测试.py -扫描-构建

备注

您可能需要安装 clang 才能运行。

在 Ubuntu 上 sudo apt-get install clang clang-tools

在 Windows 上请参见 https://clang.llvm.org/get_started.html

扫描结果可在网络浏览器中查看。扫描步骤的输出包括说明,内容如下

扫描-观点 文件/扫描-构建-2020-08-11-114140-28761-1

在 Ubuntu 18.04 上,实际上可能需要

飞龙之路=/我们/lib/llvm-3.8/份额/扫描-观点 扫描-观点-3.8 文件/扫描-构建-2020-08-11-114140-28761-1

请注意,该工具目前的输出结果有几个误报,还有一些正报但不应该修正。

要做的事情 担心:
  • EKF 对变量赋值但不读取变量
    • 一般来说,这些都需要过多的审查,不值得一试

  • new AP_Frsky_Telem(true); "及类似调用的内存泄漏。
    • 它们会创建单子,为已分配内存提供另一个句柄。