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