IncrediBuild 環境での Klocwork の実行

この記事では、Xoreax IncrediBuild によりビルドが分散された環境で Klocwork C/C++ 統合ビルド解析を実行する方法について説明します。

前提条件

IncrediBuild を Klocwork と統合する前に、Incredibuild ソフトウェアがフルインストールされていることと、Incredibuild と Klocwork の両方に有効なライセンスがあることを確認してください。

このほか、Klocwork における「Web API アクセス」権限も必要です。デフォルトでは、この権限は、プロジェクトルート管理者とプロジェクト管理者に割り当てられます。役割の詳細については、役割の設定を参照してください。

IncrediBuild を使用した build trace (ビルドトレース) ファイルの生成

IncrediBuild による加速化ビルドが実行されるたびに、有効な JSON build trace (ビルドトレース) ファイルが <incrediBuild-install-path>/temp フォルダーに生成されます。このファイルの名前は次の命名規則に従って付けられます。

IbCodeAnalysis_SolutionName_TimeStamp.json

フィールドSolutionName はソリューションの名前、TimeStamp はファイルが作成された時刻を定義する値です。

トレースファイルの形式については、build trace (ビルドトレース) ファイルの形式を参照してください。または、build specification (ビルドスペック) の生成方法の詳細については、kwinject を参照してください。

独自の build trace (ビルドトレース) ファイル名の指定

BuildConsole コマンドラインに /ca_fie=<file-path> を追加して独自のカスタムファイル名とパスを指定できます。たとえば、/ca_file="C:\MyFile.JSon" のようにします。

解析の分散

XGE プロファイルは Validate サーバーパッケージとともに次の場所にインストールされます。
<server_install>\config\xgProfile.xml

この XGE プロファイルから間接的に統合ビルド解析ツール、kwbuildproject を実行します。必要に応じて、すべての kwbuildproject オプションを含めることができます。

xgConsole /profile="<server_install>\config\xgProfile.xml" /command="kwbuildproject -j<N> ..."

フィールド <N> は、統合ビルド解析に使用する並列スレッドの数です。この数は、使用する IncrediBuild エージェントの数と等しくする必要があります。

解析のトラブルシューティング

IncrediBuild 解析で問題がある場合には、次のステップを実行してみてください。

  1. [エージェント|全般] のページにある [エージェント設定] ダイアログで、ロギングレベルを [拡張] に設定し、[ローカルで実行されたタスクに詳細ログを作成] を有効にします。
  2. ビルドを実行します。
  3. IncrediBuild トレイのアイコンをダブルクリックしてから、[ビルドモニター] 画面の [ファイル] -> [モニターファイルに名前を付けて保存...] をクリックして実行監視進行状況ファイル (.ib_mon ファイル) を保存します。
  4. IncrediBuild カスタマーサポートに、画面の進行状況ファイルを必ず添付して問い合わせてください。
  5. ロギングレベルを [最小] に戻します。

カスタムステップまたはビルドツールの定義

デフォルトでは、IncrediBuild はカスタムステップまたは外部ビルドツールをビルドプロセスの一部と見なしません。その結果、生成されたどの build trace (ビルドトレース) ファイルにもこれらのツールに関する情報は記録されません。

IncrediBuild トレースファイル出力にこの情報を含めるには、コンパイルタスクの実行につながるカスタムツールチェーン全体を定義する .xml ファイルを作成します。たとえば、カスタムステップで a.exe、b .exe という名前の順番にプロセスを実行し、コンパイルタスク (cl.exe) を実行する場合は、次のように a.exe とb.exe の両方を xml ファイルに定義する必要があります。
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Profile FormatVersion="1">
  <Tools>
    <Tool Filename="a" AllowIntercept="true" />
    <Tool Filename="b" AllowIntercept="true" />
  </Tools>
</Profile>

.xml ファイルを IncrediBuild に指定するには:

Visual Studio の場合: 次の形式に従って xml ファイルに名前を付けます。

<solution_name>.ib_profile.xml

フィールドsolution_name は現在のソリューションの名前です。そのファイルをソリューションファイルと同じフォルダーに配置します。

コマンドラインを使用: BuildConsole コマンドラインに次のスイッチを追加します。

/profile=<profile.xml_file_path>

フィールド<profile.xml_file_path> は .xml ファイルの場所と名前です。

制限事項

  • Klocwork では、IncrediBuild で分散された C/C++ プロジェクトのみがサポートされています。
  • Klocwork は Visual Studio での解析の分散をサポートしていません。
  • xgConsole ツールは、Klocwork 解析ツールからコンソールに表示される「進行状況 NN%」メッセージを抑制します。