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 を使用して展開します。カスタムチェッカーの展開 を参照してください。
次は何?
- KAST チェッカー入門をご覧ください。
- チュートリアル 1 - C/C++ KAST チェッカーの作成 に従ってチェッカーを作成してみてください。