C/C++ KAST チェッカーの作成

C/C++ KAST チェッカーの作成

Klocwork チェッカーによって検出されていないコード解析の指摘がある場合、カスタムチェッカーを作成してコード内の問題を見つけることができます。この記事では、カスタムチェッカーの作成のワークフローについて説明します。

ワークフロー: カスタムチェッカーの作成

KAST チェッカーの作成の基本手順は次のとおりです。

1.kwcreatechecker を実行してチェッカーのファイルを作成します。

kwcreatechecker --language cxx --type kast --code <checker_name> 

ここで、<checker_name> はチェッカーを呼び出す名前です。

コマンドは、チェッカーの作成に必要なスタブファイルを作成して、<checker_name>ディレクトリに配置します。この段階では、ファイルにはテンプレート材料が含まれており、プロセスの中で独自のデータに置き換えます。

  • テストケースが含まれる testcase.cc
  • チェッカーを定義する XPath-like KAST 式が含まれる checkers.xml
  • チェッカーのヘルプが含まれる help.xml
  • C/C++ ビルドファイルである Makefile

2.チェッカーに検出させる指摘を含んでいる単純なテストケースを作成し、testcase.cc ファイルに配置します。

3.Checker Studio を使用して次のことを行います。

  • チェッカーを定義する KAST 式を作成する
  • 式をテストする
  • テストケースに複雑度を加える

Checker Studio はテストケースをソースコードと見なし、階層構造の視覚的表現を抽象構文ツリー (AST) で示します。Studio はツリー構造を構築し、組み込みコンパイラはソースコードのアイテムごとに 'ノード' を作成します。親子関係を通して接続されたノードは、ステートメントや宣言のような多数の中間レベルから、演算記号のような単純な構築にわたるコードサンプル全体になることがあります。

ツリーを使用すると、目的のノードを特定し、修飾子、条件、変数、および反復シーケンスを選択して、チェッカー式を作成できます。また、Studio には式をテストするメソッドも用意されているので、ツリーを検索してソースコード内の欠陥を正確に指摘する KAST 式で完了します。

4.テンプレートスタブファイルを編集します。

<pattern> タグ内のサンプルの KAST 式を自分の式に置き換えることで、KAST 式を checkers.xml ファイルに挿入します。チェッカーのヘルプドキュメント (少なくとも説明) を作成し、help.xml ファイルに配置します。

5.チェッカーをビルドします。

このステップでは、テストケースの build specification (ビルドスペック) を生成して、ローカルプロジェクトにインポートします。

  • Unix の場合: make install buildspec
  • Windows の場合: Visual Studio プロンプトからnmake install buildspec

ビルドプロセスでは、チェッカーデプロイメントパッケージを次のファイルに生成します。

  • チェッカーをテストするために kwcheck または kwbuildprojectで使用できる build specification (ビルドスペック) ファイル
  • チェッカーファイルを含んでいる zip ファイル

6.チェッカーをテストします。

チェッカーをデスクトップにインストールして、確かな結果が得られるまでテストします。これを行うには、チェッカーデプロイメントパッケージを <username>/.klocwork./plugins ディレクトリに解凍します。

7.チェッカーを展開します。

サーバープロジェクトにチェッカーを展開する準備が完了したら、kwdeploy を使用して展開します。カスタムチェッカーの展開 を参照してください。