Kwinject

kwinject は、C/C++ と C# のビルドを監視して、build specification (ビルドスペック) を作成します。その後、build specification (ビルドスペック) を使用して、C/C++ または C# のソフトウェアシステムから Klocwork プロジェクトを解析できます。

Important: プロジェクトにビルドエラーがあると、手抜かりのない正確な build specification (ビルドスペック) を作成する Klocwork の能力が妨げられる可能性があります。

プロジェクトで初めて kwinject コマンドを実行するときは、そのプロジェクトのクリーンビルドがあることを確認します。これを行うには、たとえば make clean などの clean コマンドを実行できます。

kwinject は、そのデフォルトの挙動として、--update オプションを使用します。すなわち、同じ名前の build specification (ビルドスペック) が見つかると、そのファイルを上作成する代わりに、実行中の kwinject は再度 build specification (ビルドスペック) ファイルに付加します。

kwinject で使用する環境変数も参照してください。

使用方法

ビルド環境で build specification (ビルドスペック) を生成するには、以下のコマンドを実行します。

kwinject [option...]<build-command> [arg...]

既存の build specification (ビルドスペック) を上書きするには、以下のコマンドを実行します。

kwinject --overwrite [option...]<build-command> [arg...]

ビルド環境で build trace (ビルドトレース) を生成するには、以下のコマンドを実行します。

kwinject [option...]--trace-out <file> <build-command> [arg...]

build trace (ビルドトレース) を build specification (ビルドスペック) に変換するには

kwinject [option...]--trace-in <file>

ファイルから kwinject に渡すための変数を指定するには:

kwinject -f <variable_file> <build-command> [arg...]

フィールド

  • [options] は、次の表に示した任意のオプションです
  • <variable_file> は、次の形式の追加変数のためのオプションファイルです。OPTION=VALUE
  • <build-command> は make などのビルドコマンドです。
  • [arg...] は、ビルドコマンドに必要な任意の引数です。

Important: Visual Studio を使用する場合は、Visual Studio コマンドプロンプトから kwinject を実行することをお勧めします。Visual Studio ビルド環境設定をより正確にキャプチャするためです。

スクリプトでビルドを実行する場合

ビルドがシェルスクリプトによって実行される場合 (Cygwin や MKS Korn などのように)、次のように kwinject を実行する必要があります。

kwinject [options] sh <shell_script>

例:

kwinject sh /usr/src/xerces-c-2.5.0-1.sh

Restriction: Cygwin 環境で kwinject を実行する場合、kwinject のコマンド引数としてシンボリックリンクを指定することはできません。

ビルドがバッチスクリプトによって実行される場合、次のように kwinject を実行する必要があります。

kwinject [options] cmd /c <batch_script>

例:

kwinject cmd /c "my build.bat"

オプション

名前 短い名前 説明
--help -h このヘルプを表示します。
--version -v バージョンを表示します。
--cache-dir <directory>   指定されたキャッシュディレクトリを使用して、ビルドプロセス中にソースファイルを一時的に保存します。デフォルトの場所は、現在の作業ディレクトリです。--cache-dir オプションで指定されたディレクトリには、kwinject コマンド完了後のソースファイルは含まれません。
--cache-files <pattern>[,<pattern>...] -C 指定されたパターンの 1 つに一致するソースファイルを保存します。ビルド時にこれらのファイルのいずれかが削除されていた場合は、それらは元の場所に復元されます。Klocwork 解析に含めることができるように、生成されたソースファイルを保存するのに有効です。一時ソースファイルのキャッシュを参照してください。
--config <file> -c <file> からフィルター構成を読み取ります。デフォルトは、<Klocwork_install>/config/kwfilter.conf です。kwfilter.conf およびコンパイラ設定ファイルの「プライベート」コピーを使用できるので、元のファイルを変更する必要はありません。C/C++ build specification (ビルドスペック) の作成C-sharp build specification (ビルドスペック) の作成を参照してください。
--debug   デバッグ情報を表示する
--exclude-description <pattern>[,<pattern>...]   記述が指定パターンのいずれかに一致する場合はプログラムを処理しない
--exclude-prog <pattern>[,<pattern>...]   指定パターンのいずれかに一致するプログラムを処理しない
-f <variable_file>   特定のファイルから変数を読み取ります。
--ignore-files <pattern>[,<pattern>...] -I 指定されたパターンのいずれかに一致するソースファイルが無視されます。<pattern> には、* と ? のワイルドカードを含めることができます。例: --ignore-files conftest.* は、configure スクリプトによって作成された一時ファイルが無視されるように指定します。
--no-config   コンパイラマッピングファイル kwfilter.conf からフィルター構成を読み取りません。
--no-resolve  

シンボリックリンクを解決しません。--no-resolve オプションが指定されている場合は、コンパイラオプションのパスを解決しません。

Restriction: このコマンドオプションは、Unix のみでサポートされます。

--output <file> -o

build specification (ビルドスペック) を <file> に作成ます。デフォルトでは、build specification (ビルドスペック) は現在の作業ディレクトリの kwinject.out に書き込まれます。このオプションは、--trace-out オプションと共に使用することはできません。

Tip: build specification template (ビルドスペックテンプレート) を作成する場合、拡張子 .tpl を使用してファイルに名前を付ける必要があります。

--overwrite -w 既存の build specification (ビルドスペック) を上作成します。

クリーンビルド (完全再ビルド) を実行するときは必ず正確な build specification (ビルドスペック) が生成されるように、--overwrite オプションを使用して kwinject を実行してください。

ビルドコマンドと共に kwinject を使用するのを忘れた場合、または部分的なビルドと共に --overwrite オプションを使用して kwinject を実行した場合、正確でない build specification (ビルドスペック) が生成されます。この場合は、--overwrite オプションを使用して kwinject を実行して、build specification (ビルドスペック) を再作成してください。
--prog <prog>[=<filter>][,<prog>[=<filter>]...] -P コンパイラがデフォルトで検索したもの以外を使用する場合に、kwinject がプログラムをインターセプトするために使用するプログラム。

使用する適切なフィルターと共に、インターセプトするプログラムのカンマ区切りリストを指定します。既知のプログラムとそのフィルターのデフォルトのリストがコンパイラマッピングファイル kwfilter.conf から取得されます。このオプションによって定義されたフィルターバインディングは、コンパイラフィルターファイルから読み取られたバインディングに優先します。関連情報については、不完全な kwinject build specification (ビルドスペック) のトラブルシューティングを参照してください。

--trace-in <file> -t <file> から build trace (ビルドトレース) を読み取ります。このオプションを使用する場合、指定された build trace (ビルドトレース) を優先してコマンドおよび引数が無視されます。外部プロセスは開始しません。代わりに、インターセプトされたコマンドおよび引数は、以前に保存された build trace (ビルドトレース) ファイルから読み取られます。このオプションは、--trace-out オプションまたは <build-command> 引数と共に使用することはできません。build trace (ビルドトレース) を使用した build specification (ビルドスペック) の問題のトラブルシューティングを参照してください。
--trace-out <file> -T build trace (ビルドトレース) を <file> ファイルに保存します。このオプションは、以下のオプションのいずれかと共に使用することはできません。
  • --trace-in
  • --output
  • --update
  • --variable
  • --no-resolve
  • --no-config
  • --config
  • --prog
  • --ignore-files
--variable <variable>=<string> -V 出力ファイルで見つかったすべての <string> を、<variable> の参照と置き換えます。このオプションを使用すると、build specification (ビルドスペック) ではなく、build specification template (ビルドスペックテンプレート) が作成されます。<variable> は、文字で始まり、英数字とアンダースコア文字を含む固有の文字列である必要があります。<string> はディレクトリパスです。
重要: このオプションを使用する場合は、必ず --output オプションも使用して、.tpl 拡張子を持つファイルを指定してください。方法の詳細については、デベロッパーへの build specification template (ビルドスペックテンプレート) の提供を参照してください。
--white-dir <directory>   入力ファイルを格納しているディレクトリを指定します。一時ディレクトリでもかまいません。