コンテンツにスキップ

LLVM/scan-build

出典: フリー教科書『ウィキブックス(Wikibooks)』

はじめに

[編集]

scan-buildは、LLVMプロジェクトが提供する静的解析ツールであり、コンパイル時にコード内の潜在的なバグを検出します。本ハンドブックでは、scan-build(1)の基本的な使い方から応用例までを解説します。

scan-buildの概要

[編集]

scan-buildとは

[編集]
  • scan-buildは、Clang Static Analyzerを用いた静的コード解析ツール。
  • コンパイルプロセスをラップして解析を実行し、潜在的なバグを特定。
  • Webベースまたはテキストベースのレポートを生成。
  • clang/clang++ベースのプロジェクトに適用可能。

scan-buildのインストール

[編集]

FreeBSDでのインストール

[編集]
# pkg install llvm

macOSでのインストール

[編集]
$ brew install llvm

Linuxでのインストール (例: Debian系)

[編集]
$ sudo apt install clang-tools

基本的な使い方

[編集]

コードの解析

[編集]
$ scan-build clang myfile.c -o myfile

makeを使用した解析

[編集]
$ scan-build make

CMakeを使用した解析

[編集]
$ scan-build cmake ..
$ scan-build make

主要オプション

[編集]
主要オプション
オプション 説明
-o DIR 解析結果の出力ディレクトリを指定
--status-bugs バグが検出された場合に終了コードを非ゼロにする
--use-cc=COMPILER 解析に使用するCコンパイラを指定
--use-c++=COMPILER 解析に使用するC++コンパイラを指定
-v 詳細な出力を表示

応用例

[編集]

複数ファイルの解析

[編集]
$ scan-build clang file1.c file2.c -o output

CI/CDパイプラインでの利用

[編集]
scan-build --status-bugs make || exit 1

まとめ

[編集]

本ハンドブックでは、scan-buildの基本的な使い方、主要オプション、応用例について解説しました。コードの品質向上のために活用できます。

参考資料

[編集]