EN JP CN

IncrediBuild 環境での Klocwork の実行

IncrediBuild 環境での Klocwork の実行

IncrediBuild 環境での Klocwork の実行

IncrediBuild 環境での Klocwork の実行
この記事では、Xoreax IncrediBuild によりビルドが分散された環境で Klocwork C/C++ 統合ビルド解析を実行する方法について説明します。
注: Klocwork を IncrediBuild と統合するためには、「Web API アクセス」権限が必要です。デフォルトでは、この権限は、プロジェクトルート管理者とプロジェクト管理者に割り当てられます。役割の詳細については、次を参照してください。 役割の設定

IncrediBuild-Klocwork ライセンスの取得

Klocwork に IncrediBuild を統合する前に、ライセンスユーティリティをインストールして実行し、ライセンスを取得する必要があります。ライセンスユーティリティでは、インストールに関する情報が収集されます。この情報を IncrediBuild に送信して、ライセンスを取得する必要があります。
  1. IncrediBuild Web サイトからライセンスユーティリティをダウンロードします。
  2. ライセンスユーティリティを実行し、Klocwork サーバーのアドレス、ユーザー名、LToken の情報を入力します。[ライセンス情報の取得] をクリックし、[ライセンス情報] フィールドの情報をコピーします。
  3. ライセンス情報を電子メールに貼り付け、sales@incredibuild.com に送信します。まもなく Incredibuild-Klocwork ライセンスが電子メールでお手元に届きます。
注: Incredibuild-Klocwork ライセンスパッケージを受け取ったら、必ず JSON ファイルを IncrediBuild コンパイルプロセスとして生成するマシンに割り当ててください。

IncrediBuild レジストリエントリの更新

IncrediBuild を実行する前に、IncrediBuild Coordinator マシンで Windows レジストリキーを更新する必要があります:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Xoreax\IncrediBuild\Coordinator(or HKEY_LOCAL_MACHINE\SOFTWARE\Xoreax\IncrediBuild\Coordinator on 32-bit
            machines) 

レジストリエントリに次の値を追加します。

キー
KWUserusername
LTokenltoken
注: いずれの値も .klocwork\ltoken ファイルから取ってください。LToken の詳細については、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 プロファイルは Klocwork サーバーパッケージとともに次の場所にインストールされます。
<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%」メッセージを抑制します。