ビルド仕様ファイルの作成と使用

ビルド処理を変更して新しいビルド構成を作成するのが難しい場合は、代わりにビルド仕様ファイルを作成しなければなりないことがあります。

ビルド仕様ファイルは、アプリケーションのビルド方法の詳細をまとめたものです。特に、スタティック・セキュリティー解析を実行するのに必要なステップをまとめ、処理するファイルと使用するコンパイルオプションを指定します。 また、解析結果とライブラリアンの呼び出しを生成するためにリンクしなければならない擬似オブジェクトモジュールも示します。これらは、スタティック・リンク・ライブラリーに擬似オブジェクトモジュールを結合するのに必要です。

インテル® コンパイラーでは、ビルド仕様を作成、実行するユーティリティー・プログラムが提供されています。これらのユーティリティーのいずれかを -help スイッチとともに起動して、使用方法に関するメッセージを表示するか、または -version スイッチでバージョンを識別してください。

ビルド仕様ファイルの作成

ビルド仕様ファイルを作成するには、いくつか方法があります。使いやすい順で次に説明します。

複数のプロジェクト、複数の構成、共有コードの処理について

1 つのマスター・ビルドスクリプトを使用して、複数のプロジェクトや同一プロジェクトの複数の構成をビルドすることがあるかもしれません。例えば、1 つのビルドスクリプトで、複数のアプリケーションのデバッグおよびリリースバージョンをコンパイルしリンクします。

injection ユーティリティーで (または wrap ユーティリティーによるインストルメンテーション後) このようなビルドスクリプトを実行すると、ビルドされたすべてを実行時にスキャンする 1 つのビルド仕様ファイルが生成されます。これは、1 つのプロジェクトだけをスキャンできないので不便です。また、同一プロジェクトのすべての構成ファイルには通常、同じ問題があるため、同じプログラムの複数の構成ファイルをスキャンすることは役に立たないかもしれません。

マスター・ビルドスクリプトが、1 つのプロジェクトの 1 つの構成のみビルドすることができれば、それを使用して各プロジェクトごとに別々のビルド仕様ファイルを作成すると良いでしょう。これにより、個々のプロジェクトをスキャンすることができます。その後、すべてのプロジェクトをスキャンするスクリプトを記述することができます。

ただし、共通のソースファイルやライブラリーが複数のプロジェクトにビルドされることがあります。このような場合、解析結果に大きな重複が生じます。つまり、共有ファイルにある問題が、それを使用する各プロジェクトに現れることになります。共有ファイルの問題は、一部のプロジェクト・コンテキストで検出され、ほかでは検出されない可能性もあります。この可能性をカバーするために、各プロジェクトの該当するファイルの結果を解析すると良いでしょう。これを行う価値があるかどうかは、開発者自身が決定する必要があります。

1 つのプライマリー・プロジェクトを選択して、共有ファイルの解析結果を調査することもできます。(ライブラリーについては、ライブラリー自身の解析結果を調査するのが良いしょう。) また、プライマリー・プロジェクトの解析結果と別のプロジェクトの調査結果を比較して、共有ファイルで新しい問題が発見されたかどうかを確認することもできます。

ビルド仕様ファイルの使用

ビルド仕様ファイルを作成したら、スタティック・セキュリティー解析の実行に使用できます。ビルド仕様は、プロジェクトからファイルが追加または削除されるごとに、またはコンパイルオプションが変更されたときには必ず更新してください。 更新を怠った場合は、アプリケーション全体のフルの解析が行われません。

ビルド仕様からスタティック・セキュリティー解析を実行するには、次のコマンドライン・ユーティリティーを使用します。

inspxe-runsc -spec-file <build spec> [<options>]

<options> は、コンパイル (およびリンク) ステップに渡される追加オプションを表します。

ビルド仕様ユーティリティー・オプション

オプション 結果

-?、-h、-help

コマンドライン・オプションの説明を表示します。

-d-i=id

-disable-id=id

指定した id の警告を無効にします。

-e-i=id

、-enable-id=id

指定した id の警告を有効にします。

-l=(1 | 2 | 3)、-level=(1 | 2 | 3)

スタティック・セキュリティー解析のレベルを指定します (デフォルト = 3)。

-l-d=dir、-log-dir=dir

情報が記録されるディレクトリーを指定します。

-no-return-app-exitcode

結果ではなく、ツールの成功に基づいてリターンコードをセットします (inspxe-inject のデフォルト)。

-o-i=file、-option-file=file

コマンドライン・オプションを含むファイルを指定します。

-q、-quiet

不要なメッセージを表示しないようにします。

-r=dir、-result-dir=dir

解析結果が作成されるディレクトリーを指定します (inspxe-runsc のみ)。

-return-app-exitcode

ツールではなく、操作の成功に基づいてリターンコードをセットします (inspxe-wrap および inspxe-runsc のデフォルト)

-s-s=file、-save-spec=file

ビルド仕様を含むファイルを指定します (inspxe-wrap および inspxe-inject のみ)。 wrap ユーティリティーはこのファイルに追加します。injection ユーティリティーはこのファイルを上書きします。

-t-d=dir、-tmp-dir=dir

一時ファイルが作成されるディレクトリーを指定します

-v、-verbose

追加情報を出力します。

-V、-version

ユーティリティーのバージョン番号を表示します。

ユーザーの使用法によるエラー (無効なコマンドライン・オプションなど) では、リターンコード 1 が返されます。 ツール側のエラーでは、リターンコード 2 が返されます。 さらに、次の規則が適用されます。

inspxe-inject コマンドラインに -return-app-exitcode を追加すると、inspxe-inject ユーティリティーは観測されたビルドコマンドのリターンコードを返します。 これは、ビルドコマンドのリターンコードが、ビルド仕様ファイルで記録された処理が正しく完了したかどうかを示す信頼性の高いものである場合、推奨されます。

オプションが指定されない場合は、デフォルトでレベル 3 スタティック解析を行うオプションが付加されます。


このヘルプトピックについてのフィードバックを送信

© 1996-2011 Intel Corporation. 無断での引用、転載を禁じます。