Klocwork Desktop for C/C++ をお使いになる前に

Klocwork Desktop は、コマンドラインデスクトップ解析ツールである kwcheck の GUI 版です。Klocwork Desktop は kwcheck と同様に、IDE プラグイン形式でサポートされていないテキストエディターと IDE を使用するデベロッパー向けです。

ソースコードとコンパイラにリモートにアクセスする場合、Klocwork Desktop をリモートモードで使用します。

ワークフロー権限の取得

kwgcheckkwcheck は、連携して機能し、ビルド解析の設定を支援します。

kwgcheck では、解析ビルドを構成するときにコマンドラインから kwcheck を実行する必要が生じる場合がありますが、便利な GUI (Klocwork Desktop) を使用してプロジェクトを設定および構成できます。GUI からコマンドラインに戻るときには、Klocwork Desktop をシステムトレイに最小化することができます (手順については、Klocwork Desktop のヒントと方法を参照してください)。make を実行するとともに kwcheck を実行してビルドの結果を解析し、引き続きコンソールでビルド設定をキャプチャします。解析によって新しい欠陥が検出された場合、その欠陥は kwgcheck ツールによって報告されます。また、システムトレイにも通知が表示されます。コマンドライン以外で開かれたファイルは、ビルドの一部として解析されます。

kwgcheck インスタンスが常に正確で、最新の状態であることを確認するには、このワークフローに従うと、役立ちます。

ローカルプロジェクトの設定

作業対象の整合の取れたビルド可能なコンポーネントごとに、ローカルプロジェクトを作成します。これは、解析の結果と設定を保存しておくリポジトリとなります。プロジェクトの設定は、作業対象のコンポーネントごとに 1 回だけ実行します。

静的コード解析から最大の益を得られるのは、小さいローカルプロジェクトを Klocwork サーバー上の大きいプロジェクトに接続するときです。小規模なローカルプロジェクトは、追加のソースファイル (共有ライブラリなど) が解析されたサーバー上に生成された Klocwork knowledge base (ナレッジベース) を組み込んでいる間に、即座に解析されます。サーバープロジェクトに接続すると、指摘ステータス情報を統合ビルド解析およびチームメンバー間で共有することもできます。スタンドアロンデスクトップ解析を実行できますが、この解析では知識をローカルプロジェクトのソースファイルから引き出すだけです。

この手順は、各プロジェクトで 1 回だけ実行します。

プロジェクト設定には、ビルド設定のキャプチャも含まれます。Klocwork は、解析の実行に build specification (ビルドスペック) を使います。build specification (ビルドスペック) には、プロジェクトのソースファイルとそのコンパイラオプション (インクルードと定義) のリストが含まれます。

  1. コマンドラインから kwgcheck を実行するか、デスクトップショートカットを使用します。
  2. ツールバーから、Image:KD_create_project_icon.png をクリックします。
  3. プロジェクトの名前を入力します。
  4. 必要に応じて、プロジェクトの場所を指定します。デフォルトでは、Klocwork はプロジェクトを <home_directory>/klocwork_projects/<project_name> に作成します。選択した場所に空き領域が十分にあることを確認してください。プロジェクトは時間がたつにつれて巨大になることがあるからです。
  5. [タイプ] セクションでは、接続されたプロジェクト が自動的に選択されます。
  6. 必要に応じて Klocwork サーバーのホストとポートの情報を入力し、[次へ] をクリックします。
  7. [サーバープロジェクト名] リストで、接続するサーバープロジェクトを選択します。
  8. Klocwork サーバーへのセキュア接続 が設定されている場合は、[セキュア接続の使用] チェックボックスをオンにします。
  9. [次へ] をクリックします。
  10. [ビルド設定] ダイアログが表示されます。Klocwork は、解析の実行に build specification (ビルドスペック) を使います。build specification (ビルドスペック) には、プロジェクトのソースファイルとそのコンパイラオプション (インクルードと定義) のリストが含まれます。

kwshell でのビルド設定のキャプチャ

build specification template (ビルドスペックテンプレート) を使用している場合、このセクションの内容は該当しません。

  1. ソースディレクトリから、-pd オプションを付けて kwshellを起動します。例:
    kwshell -pd /space/testing/jlee/myproject/.kwlp 
    

    kwshell は起動時に、使用している Klocwork ローカルプロジェクトディレクトリ (.kwlp) を示します。例:

    Using Klocwork project directory '/space/testing/jlee/myproject/.kwlp'

    Klocwork シェルを実行しています...

    コマンドラインプロンプトに [kw] 接頭辞も追加され、kwshell の実行が示されます。

  2. 次に、コンポーネントをビルドします。例:
    make
     

ファイルを開くときの continuous analysis (継続的デスクトップ解析)

continuous analysis (継続的デスクトップ解析) は、作業中に自動指摘検出とエラーのハイライトを提供します。デモを見るには

プロジェクトナビゲーターでファイルをダブルクリックしてビューアーで開き、解析を開始します。検出された指摘がビューアーでハイライト表示されます。

Image:continuousanalysisviewmarked.png

ヒント:

  • connected desktop (コネクテッドデスクトップ) プロジェクトでは、ローカルな指摘は前回の統合ビルド解析以降にもたらされた指摘であり、システム指摘は統合ビルドにも存在する指摘です。
  • ときどき、コンポーネント全体を解析すると良いでしょう。そのためには、working set (ワーキングセット) を作成します。

プロジェクト全体に対する continuous analysis (継続的デスクトップ解析)

デフォルトでは、Klocwork Desktop は現在開いているファイルに対してのみ continuous analysis (継続的デスクトップ解析) を実行します。Klocwork Desktop は、プロジェクト全体に対して continuous analysis (継続的デスクトップ解析) を実行するように構成できます。Klocwork Desktop の使用中に、プロジェクトフォルダーがスキャンされ、ファイルが現在開いているかどうかにかかわらず、変更されているすべてのファイルに対して解析が実行されます。

プロジェクト全体に対する continuous analysis (継続的デスクトップ解析) を有効にするには

  1. [ツール] > [プリファレンス] をクリックします。
  2. [プリファレンス] ダイアログの [解析オプション] で、[プロジェクトの continuous analysis (継続的デスクトップ解析) を有効にする] を選択します。
    1. スキャン間隔を設定します。スキャン間隔は、変更されているファイルを検出するためにプロジェクトソースをスキャンする頻度を定義します。
    2. 静止期間を設定します。静止期間は、変更されているファイルが (スキャン中に) 検出された後、解析が実行されるまでの経過時間を定義します。静止期間は、変更されているすべてのファイルを検出し、その後の解析をスケジュールするために、SCM 更新および他の一括変更中に解析を遅らせます。
    3. 起動時に continuous analysis (継続的デスクトップ解析) を有効にするには、[起動時に解析を実行] を選択します。
      Klocwork Desktop セッション中に発生したプロジェクトソースへの変更が必ず発見されるようにするには、このオプションを選択します。増分ビルド解析を実行する際は、このオプションを選択すると役立ちます。
  3. [OK] をクリックして変更を保存します。

Restriction: continuous analysis (継続的デスクトップ解析) は Klocwork Desktop のリモートモードではサポートされていません。

検出された指摘の調査

  1. 右側にあるナビゲーションアイコンをクリックして、ファイル内の指摘箇所を特定します。

    [Klocwork の詳細] ビューの左側には指摘マーカー、右側には選択された指摘のトレースバック情報が表示されます。

  2. トレースバック情報を使用して、指摘を調査します。トレースバック行からは、表示されている指摘の一因となったイベントにリンクが貼られています。
  3. 指摘の詳細情報を得るには、[Klocwork 指摘] ビューで指摘を右クリックし [詳細情報] を選択します。

欠陥を修正し、残りは無視します。

本物の欠陥の場合:

  1. コードで指摘を修正し、変更を保存します。
  2. 解析が再度実行されます。

    指摘がリストに表示されなくなれば、その指摘は修正済みです。

修正する必要のない指摘の場合:

  1. リストで指摘を右クリックし、[ステータスの変更] > [無視する] を選択します。
  2. コメントを入力して [OK] をクリックします。

Klocwork サーバー上のプロジェクトに接続している場合、変更内容は他のデベロッパーと Klocwork Static Code Analysis にも表示されます。その他のデベロッパーによる変更でもデスクトッププロジェクトが更新されるようになりました。この状況は、別の統合ビルド解析が実行される前でも発生します。

チェックインの前に