2016-05-24 6 views
1

クラン・アナライザー・ページの「Getting Started」の指示に従っています。Clangスタティック・アナライザーのカスタム・チェッカーの作成

私のXcodeは、現在私が http://blog.trailofbits.com/2014/04/27/using-static-analysis-and-clang-to-find-heartbleed/ http://bbannier.github.io/blog/2015/05/02/Writing-a-basic-clang-static-analysis-check.html

が望んでいたように私の独自のカスタムチェッカーを書くことを見つけることができます、私はいくつかのガイドに従うことをしようとしている今チェッカービルド278

を使用している誰かができること私に正しい方向を向けると、私はclangプロジェクトを構築することにあまり慣れていません。 利用可能なIDEはありますか? ビルド278に書き込んだカスタムチェッカーを追加する方法を教えてください。

答えて

-1

最近、clangチェッカーを使用し始めました。ここではカスタムチェッカーでclangを使用する方法を説明しました。

チェッカーを登録するには、Checkers.tdを変更する必要があります。そして、新たに登録されたチェッカーによって呼び出されるように、あなたのチェッカーのクラスを追加するDebugCheckers.cppを編集

def MyCustomChecker : Checker<"DebugUsingMyChecker">, 
HelpText<"Print results of my custom checker">, 
DescFile<"DebugCheckers.cpp">; //this is the file where we define the class file of our checker 

:私はデバッググループの下に置くと、これらの行を追加し

<path-to-llvm>/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Checkers.td 

私はデバッグチェッカーを作りました。

<path-to-llvm>/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DebugCheckers.cpp 

そして、この後

namespace 
{ 
    class MyCustomChecker : public Checker<check::ASTCodeBody> { 
    public: 
     void checkASTCodeBody(const Decl *D, AnalysisManager& mgr, 
        BugReporter &BR) const { 
      if (MyCustomChecker* CC = mgr.getAnalysis<CustomChecker>(D)) { 
       CC->dump(mgr.getSourceManager()); 
      } 
     } 
    }; 
} 

void ento::registerMyCustomChecker(CheckerManager &mgr) { 
    mgr.registerChecker<MyCustomChecker>(); 
} 

にタグを付け、フォルダ内の関連するクラスファイルを置くことができ、デバッグチェッカーの下に追加します。

<path-to-llvm>/llvm/tools/clang/lib/Analysis/ 

そして、そのフォルダ内のCMakeList.txtを編集あなたのクラスファイルを含める。

希望がプロセスを明確にします。 http://clang-analyzer.llvm.org/checker_dev_manual.html

IDEに関する限り、CMakeベースのプロジェクト(CLionなど)をサポートする任意のIDEを使用できます。あなたはこのリンクをもっと見ることができます:http://llvm.org/docs/CMake.html

関連する問題