EN JP CN

Klocwork Desktop C/C++ Plug-in for Eclipse をお使いになる前に

Klocwork Desktop C/C++ Plug-in for Eclipse をお使いになる前に

Klocwork Desktop C/C++ Plug-in for Eclipse をお使いになる前に

Klocwork Desktop C/C++ Plug-in for Eclipse をお使いになる前に

Klocwork Desktop Java Plug-in for Eclipse を使用すると、チェックイン前に指摘を検出して修正することができます。

次の情報と指示は、次の C/C++ Eclipse ベース IDE にも当てはまります。

  • Wind River Workbench
  • QNX Momentics

C/C++ 言語で開発する場合は、正確な解析を実行するために必要なビルド情報が Klocwork に確実に提供されるよう、多少の調整を加えることが必要となります(この点については、以下のセクションで詳しく説明します)。このプラグインには、インライン関数の名前変更など、お使いの IDE 内で実行可能で、人気のある C/C++ リファクタリングが用意されています。

また、プロジェクト設定や指摘フィルター、解析設定などを個人設定に合わせてカスタマイズすることもできます。これらの機能の詳細については、以下のトピックを参照してください。

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

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

ビルド設定をキャプチャする

Klocwork では、解析の実行に build specification (ビルドスペック) が必要です。build specification (ビルドスペック) には、プロジェクトのソースファイルとそのコンパイラオプション (インクルードと定義) のリストが含まれます。Klocworkは、IDE ビルドプロセスを監視するか外部 (コマンドライン) ビルドプロセスを監視して、build specification (ビルドスペック) を作成します。プロジェクトにファイルが追加されるか削除されると build specification (ビルドスペック) が自動的に更新されるので、前者をお勧めします。

重要:build specification (ビルドスペック) の生成に CDT インデクサーを頼らないでください。

注: この方法は、不正確であることがわかっています。QNX Momentics を使用する場合は、代わりに QNX Momentics のビルド設定のキャプチャ を参照してください。

オプション 1:Eclipse または Wind River Workbench 外でビルドする場合

直接 kwinject を実行し、build specification (ビルドスペック) を作成します。C/C++ build specification (ビルドスペック) の作成 を参照してください。

build specification (ビルドスペック) を生成した後、ビルド設定の指定する必要があります。

オプション 2:Eclipse または Wind River Workbench 内でビルドする場合

手順は、Eclipse、QNX Momentics、または Wind River Workbench のいずれを使用しているのかで異なります。

QNX Momentics を使用している場合は、QNX Momentics のビルド設定のキャプチャ を参照してください。

Wind River Workbench を使用している場合は、Klocwork とWind River Workbench との統合 を参照してください。

Eclipse

  1. [Project Properties] > [C/C++ Build] > [Tool Chain Editor] の順に移動します。
  2. アクティブな設定の [Current Builder][CDT Internal Builder] から [Gnu Make Builder] に変更して、[Apply] をクリックします。
  3. [Project Properties] > [C/C++ Build] の順に選択します。
  4. [Builder Settings] タブで、[Use default build command] の選択を解除します。
  5. [ビルドコマンド] フィールドで、次のように、ビルドコマンドを置換します。
    <klocwork_user_install>/bin/kwinject -u -o ${ProjDirPath}/kwinject.out <build_command>
    

    フィールド<build_command> は make などのビルドコマンドです。

    オプションの説明については、kwinject を参照してください。

  6. [OK] をクリックします。
  7. build specification (ビルドスペック) を作成するには、プロジェクトのクリーンおよびビルドを実行します。

    プロジェクトディレクトリで初期 build specification (ビルドスペック) を作成するための、「クリーン」ビルドは 1 回だけで済みます。その後、ビルドを行うと、ファイルが追加または削除されたときに kwinject がbuild specification (ビルドスペック) を更新します。

ビルド設定の指定

  1. [プロジェクトプロパティ] で、[Klocwork ビルド設定] を選択します。
  2. [build specification (ビルドスペック) ファイルの使用] を選択し、作成した build specification (ビルドスペック) を参照して [OK] をクリックします。

これらのプロパティは、選択したプロジェクトについて保存され、解析を次回実行するときに使用されます。ビルド設定の指定は、更新された build specification (ビルドスペック) ファイルの場所が変わらない限り、プロジェクトに対して 1 回だけ実行します。

プロジェクトへの Klocwork サーバーの接続

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

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

  1. [プロジェクトプロパティ] ビューナビゲーターで、[Klocwork] を展開し、[プロジェクト固有の設定を有効にする] をオンにします。
  2. [同期] タブをクリックします。
  3. Klocwork サーバーのホストとポートの情報が正しいことを確認します。
  4. [プロジェクト名] リストで、接続するサーバープロジェクトを選択します。
  5. Klocwork サーバーへのセキュア接続 が設定されている場合は、[セキュア接続の使用] チェックボックスをオンにします。
  6. [OK] をクリックします。

    接続を設定すると、統合プロジェクトとデスクトッププロジェクトとの間で同期が発生し、統合プロジェクトから構成情報が取得されます。

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

ローカルプロジェクト同期設定をインポートまたはエクスポートします。

ワークスペースのプロジェクトごとに設定を変更する代わりに、ワークスペース全体のすべてのローカルプロジェクト同期設定を一括でインポート/エクスポートできます。エクスポートされた設定は、単純な XML ファイルに保存されるので、他のデベロッパーと共有したり、ワークスペースを再ビルドするために再インポートすることができます。

新しいワークスペースにインポートすると、新しいワークスペースのすべてのプロジェクト同期設定がオーバーライドされます。これは、[プロジェクト固有の設定を有効にする] チェックボックスが有効にされているかどうかにかかわらず、すべてのプロジェクトに該当します。ワークスペース A のプロジェクト MyProj[プロジェクト固有の設定を有効にする] が無効にされており、ワークスペース B のプロジェクト MyProj[プロジェクト固有の設定を有効にする] が有効にされている場合、ワークスペース B のプロジェクト MyProj はオーバーライドされ、ローカルプロジェクト設定は無効になります。

構成設定には以下が含まれます。
  • プロジェクト固有の設定を有効にする
  • Klocwork サーバーのホスト名とポート番号
  • セキュア接続の設定
  • サーバー上で関連付けられているプロジェクトの名前

プロジェクト同期設定をエクスポートするには:

  1. ウィンドウ > プリファレンス ダイアログで、[Klocwork] を展開し、[設定] を選択します。
  2. [マップのエクスポート...] をクリックして、エクスポートマップファイルのファイル名と場所を指定し、[保存] をクリックします。
構成マッピングファイルをデフォルトの XML ビューアで表示するために、[マップの表示] をクリックします。以下に、2つのプロジェクトの一般的な出力ファイルの形式を示します。
<SyncMapping>
    <ProjectSettings EclipseProjectName="myProj"/>
    <ProjectSettings EclipseProjectName="HelloWorld3">
        <ProjectSyncInfo KwProjectName="HelloWorld3" KwServerHost="server11" KwServerPort="8080" KwSslEnabled="true"/>
    </ProjectSettings>    
</SyncMapping>

構成マッピングファイルをインポートするには

  1. ウィンドウ > プリファレンス ダイアログで、[Klocwork] を展開し、[設定] を選択します。
  2. [マップのインポート...] をクリックして、エクスポートマップファイルのファイル名と場所を指定し、[開く] をクリックします。
  3. [OK] をクリックして構成マップファイルをインポートします。
注: マップファイルで指定されているプロジェクトのリストは、現在のワークスペース内のプロジェクトのリストの部分集合または上位集合である場合があります。インポート時には、ワークスペース内に見つかったプロジェクトのローカル構成設定だけが変更されます。インポート処理が完了すると、ステータメッセージが表示されます。

ファイルを開いて保存するときの continuous analysis (継続的デスクトップ解析)

continuous analysis (継続的デスクトップ解析) は、デフォルトで有効であり、ファイルを開くか保存すると実行されます。

Klocwork 指摘が検出されると、エディター右上にオレンジ色の正方形 が表示されます。このオレンジ色の正方形にマウスをかざして、ファイル内で検出された指摘の概要を確認します。

指摘には、右側のエラーストライプに薄いオレンジ色の四角形 、左側にオレンジ色の山形紋 が付きます。これらのアイコンのどちらかにマウスをかざして、指摘メッセージ全文を確認します。

検出された指摘のリストを表示するには、[ウィンドウ] > [Show View] > [Other] > [Klocwork] > [Klocwork 指摘] に移動します。

connected desktop (コネクテッドデスクトップ) プロジェクトでは、ローカルな指摘は前回の統合ビルド解析以降にもたらされた指摘であり、システム指摘は統合ビルドにも存在する指摘です。

検出された指摘の調査

  1. [指摘] ビューで指摘をダブルクリックして、[詳細] ビューを表示します。
  2. トレースバック情報を使用して、指摘を調査します。トレースバックを表示するには、 または をクリックします。トレースバック行からは、指摘の一因となったイベントにリンクが貼られています。トレースバック内の行をクリックすると、指摘内容が現れるファイル内の場所が呼び出され、左側にバグマーカーが表示されます。
  3. [指摘] ビューで指摘を右クリックし [詳細情報] を選択して、指摘タイプのヘルプを得ます。

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

本物の欠陥の場合:

  1. コードで指摘を修正し、変更を保存します。
  2. 解析が再度実行されます。
    指摘がリストに表示されなくなれば、その指摘は修正済みです。

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

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

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

問題の破棄 (CI ビルドのみ)

継続的インテグレーション (CI) ビルドを構成して Eclipse で [open in IDE] ボタンをクリックしてサポートされている CI プラグインの 1 つから問題をオープンする場合、問題はオープンされているプロジェクトにインポートされます。この問題を修正した場合、または単に問題リストから問題を削除したい場合、その問題で右クリックして [インポートされた問題の破棄] をクリックします。なおこの機能は完全解析で見つかった問題には適用されません。つまりそれらの問題は破棄できません。

build specification (ビルドスペック) の更新

Eclipse の外部でビルドする場合、ファイルを追加したりビルド設定を変更したときは必ず、--update オプションを指定してkwinject を実行して build specification (ビルドスペック) を更新し、同じ場所に保存します。build specification (ビルドスペック) が古い場合、正確に解析できません。