最近、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