執行 Clang 靜態分析

靜態分析是一種在不執行原始碼的情況下分析原始碼的方法,其中一項應用程式是找出程式碼網格和錯誤。

Fuchsia 使用 Clang 做為編譯器。Clang 有數種工具 可以靜態分析程式碼Fuchsia 提供大量實用的警告訊息,並以警告形式編譯。

必要條件

執行靜態分析前,請先確認您具備下列項目:

  • 工具鍊:您可以使用預先建構的工具鍊,或編譯工具鍊。如要瞭解如何編譯工具鍊,請參閱工具鍊指南。注意:本指南假設您使用的是預先建構的工具鍊。
  • 編譯資料庫:您需要編譯資料庫才能使用 clang-tidy 和 Clang 靜態分析工具。這會由 fx set 自動在建構目錄的根目錄中建立。## 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

資源