問題タブ [scan-build]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Linuxでg ++を使用してclang scan-buildを実行する
次のコードがあります。
私はclangのスキャンビルドを使用しようとしています:
このプログラムは、g++ で正常にコンパイルおよび実行されます。CentOS と clang3.8 と g++4.8.5 を使用しています。
エラーメッセージ:
c - scan-build make はバグを検出しません
非常に単純な .c ファイルがあり、その中にいくつかの明らかなバグがあります。
エラーを検出するために、clang の静的コード アナライザー ツール (scan-build) を使用しようとしています。たとえば、次のコマンドを使用して、ファイルに対してツールを直接実行すると、次のようになります。
スキャンビルド g++ -o 1 1.c
0 による除算に言及するコンパイラからの警告を含め、意図した出力が得られます。
scan-build: 静的解析に「/usr/lib/llvm-3.8/bin/clang」を使用
1.c: 関数 'int test2(int)' 内: 1.c:16:11: 警告: ゼロ除算 [-Wdiv-by-zero] return 5/(xx); ^
1.c:16:11: 警告: 0 による除算は 5/(xx) を返します。
~^~~~~~ 1 件の警告が生成されました。scan-build: 1 件のバグが見つかりました。scan-build: 「scan-view /tmp/scan-build-2016-07-11-152043-3028-1」を実行して、バグ レポートを調べます。
今、私はそのコマンドを非常に単純な Makefile に入れようとしています。私の Makefile の内容は次のとおりです。
ただし、次のコマンドを使用して、make で scan-build を実行するたびに:
スキャンビルドメイク
コンパイラからはまだ警告が表示されますが、スキャンビルド ツールからは表示されません!!!
scan-build: 静的解析に「/usr/lib/llvm-3.8/bin/clang」を使用
g++ -o 1 1.c
1.c: 関数 'int test2(int)' 内:
1.c:16:11: 警告: ゼロ除算 [-Wdiv-by-zero] return 5/(xx);
^ scan-build: レポートが含まれていないため、ディレクトリ '/tmp/scan-build-2016-07-11-152326-3055-1' を削除しています。scan-build: バグは見つかりませんでした。
C ファイルと C++ ファイルの両方で同じ動作を確認しました。過去(2012年)に誰かが同様のエラーに遭遇したことがわかりましたが、提案された回答は機能していないようで、とにかくC++ファイルのみを参照しているようです。手がかりはありますか?
jenkins - Jenkins xUnit プラグインに似た、Clang スキャンビルド レポート用のアナライザーはありますか?
私は1年以上続くプロジェクトに参加しています。最近、私たちの経営陣は、Clang 静的アナライザーを使用したコードの定期的なチェックを採用することを決定しました。
私たちのプロジェクトには、Jenkins に基づく CI サーバーがあります。プッシュ イベントの後に Gitlab によって開始されるビルド スクリプトに scan-build の呼び出しが追加されます。すべてのビルド結果は Jenkins で公開されます。
Clang scan-build は 600 を超える警告を報告します。私たちは彼らと一緒にいて最終的には修正したいと思っていますが、新しい問題が発生したらすぐに修正します.
xUnit プラグインのように、2 つのレポートを比較して相違点を強調するツールまたは Jenkins プラグインを探しています。このプラグインは、失敗した各テスト ケースを追跡し、失敗の経過時間を示し、ビルドごとに、修正された失敗の数と新しい失敗が発生した回数を示します。
c - scan-build が機能せず、「レポートが含まれていないため、ディレクトリ xxx を削除しています。」
単純なバグのあるコード ファイル
こんにちはC
gcc でコマンドと結果を実行する
クランで
警告が生成されることを理解できません (おそらくコンパイラによるものでしょうか?) が、それでもスキャンビルドが機能しないのはなぜですか?
**** 2021 年 6 月 30 日更新
私はこのチュートリアルに従い、最終的に「python」バージョンのscan-buildを取得しましたが、これはそのような誤解であり、答えは私の問題を完全に解決し、現在は機能しています。 https://github.com/rizsotto/scan-build