問題タブ [clang-static-analyzer]

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.

0 投票する
1 に答える
475 参照

objective-c - ARC: コア基盤を使用した Objective-C コードでのアナライザーの警告

一部の Objective-C でアナライザーを使用する | Cocoa / Core Foundation のコードで、理解できないために修正できないエラーがいくつかありました。

エラー #1 : Objective-C クラス ヘッダーで、このプロパティを宣言します。

本文では、次のエラーが発生します。

ここに画像の説明を入力

質問:なぜリークなのですか? 私はそれを財産に保管し、後で処分します。ARCはCF「オブジェクト」の扱い方を知っていると思っていました。

エラー #2: 後で、オブジェクトを解放するときに次のエラーが発生しました。

ここに画像の説明を入力

質問:実際に機能する (ClientInitialize と destroyAllClients の呼び出しの間に self.gClients が存在する) コードを作成するために、これら 2 つの Analyzer 警告をどのように考慮に入れることができますか?

0 投票する
1 に答える
1277 参照

ios - Jenkins: clang アナライザーが新しいバグを発見した場合にビルドを不安定としてマークする方法

Xcode Build および Clang Scan-Build プラグインを使用して、iOS プロジェクトの自動ビルド/分析を行うために、Mac サーバーに Jenkins CI をセットアップしました。編集可能な電子メール通知プラグインを使用して、ビルドが壊れた場合にユーザーに通知するように電子メール通知を設定しています。ただし、最後のコミット以降に Clang スキャンビルド フェーズで新しいバグが検出された場合は、ユーザーにメールを送信したいと思います。導入された?(しきい値を超えた場合だけでなく、最後のコミット以降に新しいバグが導入された場合にユーザーに通知したい。)

clang プラグインは以前のビルドからの clang バグ数の結果のグラフを既に提供しているため、これが可能であると確信しています。

助けてくれてありがとう。

0 投票する
1 に答える
428 参照

ios - 警告をトリガーする clang 静的アナライザーのステップを特定するにはどうすればよいですか?

CocoaLumberjackの以下のDDAbstractDatabaseLoggerメソッド:

clang 静的アナライザーの警告をトリガーします。

手順のスクリーンショット: ここに画像の説明を入力

ビルド出力を調べたところ、次の plist が見つかりました。

静的アナライザーが null ポインターが渡されると考える抽象値を取得する方法はありますか? 私はそれを理解することはできません。

0 投票する
1 に答える
409 参照

xcode4.5 - clang checker-275 をインストールする方法と、Clang Scan-Build プラグインを構成する例を教えてください。

checker-275.tar.bz2 をダウンロードし、次のコマンドを使用して構成しようとしましたが、エラーがスローされます。

sudo ./Users/abc/Downloads/checker-275/set-xcode-analyzer --use-checker-build=$ABSOLUTE_PATH_TO_CLANG パスワード:

エラー: sudo: ./Users/abc/Downloads/checker-275/set-xcode-analyzer: コマンドが見つかりません Mac-mini:~ aegon$ sudo ./Users/abc/Downloads/checker-275/set-xcode-analyzer --use-checker-build=$/Users/abc/Downloads/checker-275/bin/clang

参照用にこのリンクをたどりました.. http://skabber.com/use-the-latest-version-of-clang/

この問題を解決するのを手伝ってください よろしくお願いします

0 投票する
2 に答える
2712 参照

objective-c - xml 形式の Clang 静的アナライザー出力

Clang スキャンビルド アナライザーから XML 形式で出力を取得することは可能ですか? 現在、次のコマンドは、Web ブラウザーで表示する HTML 形式の出力を生成します。

Windows 上の CppCheck は、XML 形式で出力を生成します。結果を CppCheck と同じ形式に解析する必要があります。しかし、MACOS では cppCheck を使用できません。私が達成しようとしているのは、ObjectiveC プロジェクトのダッシュボード (継続的統合) レポートを作成できるように、結果を Sonar C++ プラグインにフィードすることです。Sonar C++ プラグインは、CppCheck を使用してコードを静的に分析します。

どんな入力でも大歓迎です。

0 投票する
1 に答える
2073 参照

ios - Clang Analyzer を使用してレポートを生成する - scan-build

私は Clang アナライザーを初めて使用し、scan-build を使用してレポートを生成しようとしています。以下のようにスキャンビルドを使用している間:

私は常に以下のエラーが発生しています:

この問題の解決を手伝ってください。

0 投票する
1 に答える
349 参照

clang - if ステートメントの then 部分の正しい行番号を出力できない、Clang

次のコードでは、clang API を使用して C コードを解析してから、

1) コードに HTML ヘッダーとフッターを追加して、ブラウザーで表示できるようにします。

2) IF ステートメントの THEN 部分の行番号を取得して出力します。

(2)で困っています。私は出力を理解することができません。次の入力 (行番号が追加されています) については、(関連する) 出力を次のように取得しています。

行番号は 6

行番号は 6

行番号は 6

行番号は 6


行番号は 12 です

行番号は 12 です

行番号は 12 です

行番号は 12 です


それぞれ 4 と 8 になると思います。誰かが私が間違っている場所を説明できますか?

私の入力は次のとおりです(行番号を削除するか、http://pastebin.com/hF5yMMAzにアクセスしてください)

%nl myinput.c

10 }

11

12 リターン 0;

13 }

私のコードは次の場所にあります (1 つのファイルのみ) http://pastebin.com/txF9Bwa4

コードをコンパイルするには、次のコマンドを実行します。

CLANG_INSTALL=/usr/installdir/

g++ -I$CLANG_INSTALL/include/ -D_DEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -g -fvisibility-inlines-hidden -fno-exceptions -fno-rtti -fno-common -Woverloaded-virtual -Wcast-qual -fno-rtti -c -o rewritersample.o rewritersample.cpp

g++ -g -I$CLANG_INSTALL/include/ -o rewritersample rewritersample.o -lclangTooling -lclangFrontendTool -lclangFrontend -lclangDriver -lclangSerialization -lclangCodeGen -lclangParse -lclangSema -lclangStaticAnalyzerFrontend -lclangStaticAnalyzerCheckers -lclangStaticAnalyzerCore -lclangAnalysis -lclangARCMigrate -lclangRewriteFrontend -lclangRewriteCore -lclangEdit -lclangAST -lclangLex -lclangBasic -lLLVMIRReader -lLLVMBitReader -lLLVMAsmParser -lLLVMHexagonCodeGen -lLLVMHexagonAsmPrinter - lLLVMHexagonDesc -lLLVMHexagonInfo -lLLVMNVPTXCodeGen -lLLVMNVPTXDesc -lLLVMNVPTXInfo -lLLVMNVPTXAsmPrinter -lLLVMMBlazeDisassembler -lLLVMMBlazeCodeGen -lLLVMMBlazeDesc -lLLVMMBlazeAsmPrinter -lLLVMMBlazeAsmParser -lLLVMMBlazeInfo -lLLVMCppBackendCodeGen -lLLVMCppBackendInfo -lLLVMMSP430CodeGen -lLLVMMSP430Desc -lLLVMMSP430Info -lLLVMMSP430AsmPrinter -lLLVMXCoreDisassembler -lLLVMXCoreCodeGen -lLLVMXCoreDesc -lLLVMXCoreInfo-lLLVMXCoreAsmPrinter -lLLVMMipsDisassembler -lLLVMMipsCodeGen -lLLVMMipsAsmParser -lLLVMMipsDesc -lLLVMMipsInfo -lLLVMMipsAsmPrinter -lLLVMARMDisassembler -lLLVMARMCodeGen -lLLVMARMAsmParser -lLLVMARMDesc -lLLVMARMInfo -lLLVMARMAsmPrinter -lLLVMAArch64Disassembler -lLLVMAArch64CodeGen -lLLVMAArch64AsmParser -lLLVMAArch64Desc -lLLVMAArch64Info -lLLVMAArch64AsmPrinter -lLLVMAArch64Utils -lLLVMSparcCodeGen -lLLVMSparcDesc -lLLVMSparcInfo -lLLVMTableGen -lLLVMDebugInfo -lLLVMOption -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMSelectionDAG -lLLVMAsmPrinter -lLLVMX86Desc -lLLVMX86Info -lLLVMX86AsmPrinter -lLLVMX86Utils -lLLVMMCDisassembler -lLLVMMCParser -lLLVMInstrumentation -lLLVMInterpreter -lLLVMipo -lLLVMVectorize -lLLVMLinker -lLLVMBitWriter -lLLVMMCJIT -lLLVMJIT -lLLVMCodeGen -lLLVMObjCARCOpts -lLLVMScalarOpts-lLLVMInstCombine -lLLVMTransformUtils -lLLVMipa -lLLVMAnalysis -lLLVMRuntimeDyld -lLLVMExecutionEngine -lLLVMTarget -lLLVMMC -lLLVMObject -lLLVMCore -lLLVMSupport -L$CLANG_INSTALL/lib/ -lz -lpthread -lm -lLLVMCppBackendCodeGen -lLLVMCppBackendInfo -lLLVMTarget -lLLVMCore -VMlMMC -lLLVSupport ldl

コードを実行するには、コマンドは

$./rewritersample ./myinput.c

0 投票する
1 に答える
2339 参照

makefile - clang++ の静的アナライザーと Makefile

私は最近、clang++ の静的アナライザー機能を発見しました。これは、潜在的なバグを見つけるために細かい櫛でコードを調べるのに最適です。Makefile で次の行のコメントを外します。

ほら、私は詳細なバグチェックモードに入っています。

ただし、これに関する 1 つの小さな問題は、アナライザーが特定の .cpp ファイルで問題を検出しない場合は常に、.o ファイルを生成しないことです。

通常、それは大したことではありません (実際の実行可能ファイルをビルドするために、上記の行にいつでも再コメントできます) が、通常、アナライザーの警告が表示された場合、最初にやりたいことは、根本的な問題を修正することです。そして、make を再実行します。

...これは機能しますが、.o ファイルが生成されていないため、make は、前回の実行以降に実際に変更した .cpp ファイルだけでなく、最初からすべての .cpp ファイルの再分析を開始します。これは、変更されていない .cpp ファイルを再チェックするのにかなりの時間を費やすことになることを意味します。

私の質問は、静的アナライザーに .o ファイル (有効なオブジェクト ファイルである必要はなく、タイムスタンプが更新された任意のファイルである必要はありません) を出力させる方法はありますか? .cpp ファイルを再処理する必要はありませんか? (つまり make Make は通常のコンパイル時と同じように動作します)