メインコンテンツ

Polyspace Platform ユーザー インターフェイスでの Polyspace Code Prover のオプション

Polyspace Platform ユーザー インターフェイスでは、C/C++ コードに対して次の静的解析を実行できます。

  • Polyspace® Bug Finder™ を使用して、C/C++ コードで欠陥とコーディング規約違反の有無をチェックできます。

  • Polyspace Code Prover™ を使用して、C/C++ コードに特定のタイプのランタイム エラーが存在しないことを証明できます。

詳細については、Run Static Analysis in Polyspace Platform User Interfaceを参照してください。

Polyspace Bug Finder または Polyspace Code Prover の解析を実行するために使用するオプションをカスタマイズできます。このトピックでは、Polyspace Platform ユーザー インターフェイスで使用できる Code Prover 解析のオプションについて説明します。

オプションを構成するには、Polyspace Platform プロジェクトの [構成] ノードをダブルクリックします。[構成] ペインでの Code Prover 解析のオプションは、次の 2 つのタブに分けられています。

  • プロジェクト — このタブには、Polyspace 製品を使用した静的解析と動的テストの両方に関連する、プロジェクト全体のオプションがあります。プロジェクトを参照してください。

  • ビルド — このタブには、Polyspace 製品を使用した静的解析と動的テストの両方に適用されるオプションがあります。ビルドを参照してください。

  • 静的解析 — このタブには、静的解析製品 Bug Finder および Code Prover に適用されるオプションがあります。[実行時エラー] ノードとその下にあるノードには、Code Prover 解析に固有のオプションがあります。静的解析を参照してください。

プロジェクト

次の表に、[プロジェクト] タブにある、Polyspace Code Prover 解析に関連するオプションを記載します。

オプション説明詳細
名前Polyspace Platform プロジェクトの名前を表示します。名前を参照してください。
作成者Polyspace Platform プロジェクトの作成者名を指定します。作成者を参照してください。
作成日Polyspace Platform プロジェクトが作成された日付と時刻を表示します。作成日を参照してください。
最終更新日時Polyspace Platform プロジェクトが最後に更新された日付と時刻を表示します。最終更新日時を参照してください。
ソース コードのエンコードソース ファイルのエンコードを指定します。ソース コードのエンコード (-sources-encoding) を参照してください。
アプリケーション ソース ファイルPolyspace Platform プロジェクトにソース ファイルを追加します。アプリケーション ソース ファイルを参照してください。
アプリケーション ソース フォルダーPolyspace Platform プロジェクトにソース フォルダーを追加します。アプリケーション ソース フォルダーを参照してください。
インクルード パスインクルード ファイルが格納されているフォルダーへのパスを指定します。

インクルード パス (-I) を参照してください。

ファイル名パターンを含めるPolyspace Platform プロジェクトに含めるファイルのファイル名パターンを指定します。ファイル名パターンを含めるを参照してください。
パスを除外する静的解析から除外するフォルダーまたはファイルを指定します。パスを除外するを参照してください。
プロジェクト変数Polyspace Platform プロジェクトで省略形として使用する環境変数を定義します。プロジェクト変数を参照してください。

ビルド

[一般] タブにある [ターゲットおよびコンパイラ] ノードは、標準の Polyspace 構成 (つまり、標準の Polyspace ユーザー インターフェイスで作成されたもの) の [ターゲットおよびコンパイラ] ノードと同等ですが、いくつかの小さな相違点があります。相違点の詳細については、Differences in Configuration Options Between Polyspace Projects and Polyspace Platform Projectsを参照してください。

ターゲットおよびコンパイラ

[ターゲットおよびコンパイラ] ノードにあるオプションを以下に記載します。

オプション説明詳細
ソース コードの言語ソース ファイルの言語の指定

ソース コードの言語 (-lang) を参照してください。

C 標準バージョンソース コードで準拠する C 言語規格を指定

C 標準バージョン (-c-version) を参照してください。

C++ 標準バージョンソース コードで準拠する C++ 言語規格を指定

C++ 標準バージョン (-cpp-version) を参照してください。

プロセッサ現在のビルド構成のプロセッサを選択

プロセッサを参照してください。

コンパイル ツールチェーン (静的解析)ソース コードのビルドに使用するコンパイラを指定します。このオプションは静的解析にのみ適用されます。テスト用にコンパイル ツールチェーンを指定するには、オプション [コンパイル ツールチェーン (テスト)] を指定します。

コンパイル ツールチェーン (静的解析) を参照してください。

負の整数除算結果の負方向への丸めコンパイラが、2 つの整数の除算による負の商を負方向に丸めるよう指定します

負の整数除算結果の負方向への丸め (-div-round-down) を参照してください。

パック アライメント値Visual C++® で開発したコードの既定の構造体パック アライメントの指定

パック アライメント値 (-pack-alignment-value) を参照してください。

算術シフトとして符号付き整数を右にシフトコンパイラが符号付き整数の右シフトを算術シフトとして実装するよう指定する

算術シフトとして符号付き整数を右にシフト (-logical-signed-right-shift) を参照してください

プリプロセッサ定義前処理済みのコード内でのマクロの置き換え

プリプロセッサ定義 (-D) を参照してください。

無効なプリプロセッサ定義前処理済みのコード内でのマクロの定義解除

無効なプリプロセッサ定義 (-U) を参照してください。

強制インクルードどのソース ファイルでも #include されるファイルを指定

強制インクルード (-include) を参照してください。

追加のインクルード パスプロジェクト全体のインクルード パスの他に、ビルド固有のインクルード パスを指定

追加のインクルード パス (-I) を参照してください。

ビルド コマンドから作成されたプロジェクトでは、次の読み取り専用オプションも参照してください。

静的解析

[静的解析] タブにあるノードは、標準の Polyspace 構成 (つまり、標準の Polyspace ユーザー インターフェイスで作成されたもの) に含まれる同じ名前を持つノードと同等ですが、いくつかの小さな相違点があります。相違点の詳細については、Differences in Configuration Options Between Polyspace Projects and Polyspace Platform Projectsを参照してください。

環境設定

[環境設定] ノードにあるオプションを以下に記載します。

オプション説明詳細
ファイルがコンパイルされない場合は解析を停止コンパイル エラーによって解析を停止しなければならないことを指定

ファイルがコンパイルされない場合は解析を停止 (-stop-if-compile-error) を参照してください。

前処理済みファイルに適用するコマンド/スクリプト解析の前処理段階の後で、ソース ファイルに対して実行するコマンドまたはスクリプトを指定

前処理済みファイルに適用するコマンド/スクリプト (-post-preprocessing-command) を参照してください。

DOS または Windows ファイル システムからのコードファイル パスが MS-DOS スタイルであることの考慮

DOS または Windows ファイル システムからのコード (-dos) を参照してください。

入力およびスタブ

[入力およびスタブ] ノードにあるオプションを以下に記載します。

オプション説明詳細
制約の設定グローバル変数、関数の入力およびスタブ関数の戻り値の制約

制約の設定 (-data-range-specifications) を参照してください。

グローバル変数の既定の初期化を無視するグローバル変数がコード内で明示的に初期化されていない場合、未初期化と見なす

グローバル変数の既定の初期化を無視する (-no-def-init-glob) を参照してください。

スタブを生成する関数解析時にスタブ化する関数の指定

スタブを生成する関数 (-functions-to-stub) を参照してください。

使用するライブラリプログラムで使用するライブラリの指定

使用するライブラリ (-library) を参照してください。

マルチタスキング

[マルチタスキング] ノードにあるオプションを以下に記載します。

オプション説明詳細
Code Prover の同時実行の自動検出を有効にするマルチスレッド関数の特定ファミリの自動検出

Code Prover の同時実行の自動検出を有効にする (-enable-concurrency-detection) を参照してください。

マルチタスキング構成を指定外部ファイルを使用してマルチタスキング構成を設定するかどうかの指定

ファイルを使用してマルチタスキング構成を指定を参照してください。

外部マルチタスキング構成マルチタスキング構成の設定に使用する、サポートされている外部ファイル形式を指定します。

マルチタスキング用の外部ファイルを参照してください。

マルチタスクを手動で構成コードがマルチタスキングを対象としていることの考慮

マルチタスクを手動で構成を参照してください。

タスクマルチタスク アプリケーションのタスクとして機能する関数の指定

タスク (-entry-points) を参照してください。

周期タスク周期タスクを表す関数の指定

周期タスク (-cyclic-tasks) を参照してください。

割り込み非プリエンプタブル割り込みを表す関数の指定

割り込み (-interrupts) を参照してください。

クリティカル セクション詳細クリティカル セクションを開始、終了する関数の指定

クリティカル セクション詳細 (-critical-section-begin -critical-section-end) を参照してください。

時間的に排他なタスク同時に実行できないエントリ ポイント関数の指定

時間的に排他なタスク (-temporal-exclusions-file) を参照してください。

実行時エラー

[実行時エラー] ノードにあるオプションを以下に記載します。

オプション説明詳細
アプリケーション全体の検証ソース ファイルが不完全で main 関数が含まれていない場合に検証を停止

アプリケーション全体の検証を参照してください。

グローバル変数の共有と使用のみを表示グローバル変数の共有と使用を完全解析を実行することなく計算

グローバル変数の共有と使用のみを表示 (-shared-variables-mode) を参照してください。

コードの初期化セクションのみの検証初期化コードのみのランタイム エラーとその他の問題のチェック

コードの初期化セクションのみの検証 (-init-only-mode) を参照してください。

モジュールまたはライブラリの検証main を含まないモジュールまたはライブラリがソース ファイルである場合に関数 main を生成

モジュールまたはライブラリの検証 (-main-generator) を参照してください。

クラス検証するクラスの指定

クラス (-class-analyzer) を参照してください。

指定クラス内で呼び出す関数検証するクラス メソッドの指定

指定クラス内で呼び出す関数 (-class-analyzer-calls) を参照してください。

クラスの内容のみを解析クラス メソッド以外のコードを解析しない

クラスの内容のみを解析 (-class-only) を参照してください。

メンバー初期化チェックをスキップクラス コンストラクターがクラス メンバーを初期化するかどうかをチェックしない

メンバー初期化チェックをスキップ (-no-constructors-init-check) を参照してください。

初期化する変数生成された main により初期化するグローバル変数の指定

初期化する変数 (-main-generator-writes-variables) を参照してください。

初期化関数生成された main により他の関数より先に呼び出す関数の指定

初期化関数 (-functions-called-before-main) を参照してください。

呼び出す関数生成された main により初期化関数の後に呼び出す関数の指定

呼び出す関数 (-main-generator-calls) を参照してください。

検証の前提条件

[検証の前提条件] ノードにあるオプションを以下に記載します。

オプション説明詳細
浮動小数点の丸めモード浮動小数点演算の結果を判定する際に考慮する丸めモードの指定

浮動小数点の丸めモード (-float-rounding-mode) を参照してください。

フィールドに volatile 修飾子があることを考慮するコード内のどの位置にあっても、構造体の volatile 修飾子付きフィールドは取り得るすべての値を含む可能性があると仮定

フィールドに volatile 修飾子があることを考慮する (-consider-volatile-qualifier-on-fields) を参照してください。

環境ポインターが安全でないことを考慮する制約を設けない限り、環境ポインターはデリファレンスに対して安全でない可能性があることを指定

環境ポインターが安全でないことを考慮する (-stubbed-pointers-are-unsafe) を参照してください。

アセンブリ コードを無視C/C++ コード内のアセンブリ命令では C/C++ 変数を変更できないことを指定

アセンブリ コードを無視 (-ignore-assembly-code) を参照してください。

チェック動作

[チェック動作] ノードにあるオプションを以下に記載します。

オプション説明詳細
左シフトで負のオペランドを許可負の数値での左シフト演算の許可

左シフトで負のオペランドを許可 (-allow-negative-operand-in-shift) を参照してください。

符号付き整数のオーバーフロー モードオーバーフローの結果をラップするか切り捨てるかを指定

符号付き整数のオーバーフロー モード (-signed-integer-overflows) を参照してください。

符号なし整数のオーバーフロー モードオーバーフローの結果をラップするか切り捨てるかを指定

符号なし整数のオーバーフロー モード (-unsigned-integer-overflows) を参照してください。

非有限の浮動小数点を検討無限大と NaN を組み込んだ解析モードの有効化

詳細は、非有限の浮動小数点を検討 (-allow-non-finite-floats) を参照してください。

無限大結果が無限大になる浮動小数点演算の処理方法の指定

無限大 (-check-infinite) を参照してください。

NaN結果が NaN になる浮動小数点演算の処理方法の指定

NaN (-check-nan) を参照してください。

非正規検出モード非正規浮動小数点値になる演算の検出

非正規検出モード (-check-subnormal) を参照してください。

未初期化のチェックを無効にする未初期化変数および未初期化ポインターのチェックの無効化

未初期化のチェックを無効にする (-disable-initialization-checks) を参照してください。

スコープ外のスタック ポインター デリファレンスを検出関数がそれ自体のローカル変数の 1 つを指すポインターを返すケースを検索

スコープ外のスタック ポインター デリファレンスを検出 (-detect-pointer-escape) を参照してください。

構造体の不完全または部分的割り当てを許可するメモリ バッファーが十分でないポインターが構造体を指すことを許可

構造体の不完全または部分的割り当てを許可する (-size-in-bytes) を参照してください。

呼び出されない関数の検出main 関数または別のエントリ ポイント関数から直接または間接的に呼び出されない関数の検出

呼び出されない関数の検出 (-uncalled-function-checks) を参照してください。

影響分析を有効化ソースとシンクとして指定されているプログラム要素間の影響の有無を確認

影響分析を有効化 (-impact-analysis) を参照してください。

ソースとシンクの指定プログラム要素を影響分析のソースとシンクとして特定している XML ファイルを指定

ソースとシンクの指定 (-impact-specifications) を参照してください。

影響分析の結果のみを表示実行時エラーの通常の Code Prover チェックをスキップして、影響分析のみを実行

影響分析の結果のみを表示 (-impact-analysis-only) を参照してください。

スタック使用量の計算スタック使用量の推定値の計算と表示

スタック使用量の計算 (-stack-usage) を参照してください。

精度

[精度] ノードにあるオプションを以下に記載します。

オプション説明詳細
精度レベル検証の精度レベルの指定

精度レベル (-O0 | -O1 | -O2 | -O3) を参照してください。

検証レベルコードに対する検証プロセスの実行回数の指定

検証レベル (-to) を参照してください。

状況依存性エラーの原因となった関数呼び出しを識別する呼び出しコンテキスト情報の保存

状況依存性 (-context-sensitivity) を参照してください。

手続き間解析の精度を高める行数が少ないコードに対する特定の検証の近似の回避

手続き間解析の精度を高める (-path-sensitivity-delta) を参照してください。

特定の精度残りの検証よりも高い精度で検証するソース ファイルの指定特定の精度 (-modules-precision) を参照してください。

スケーリング

[スケーリング] ノードにあるオプションを以下に記載します。

オプション説明詳細
インライン関数呼び出しのたびに内部でクローンを作成しなければならない関数を指定

インライン (-inline) を参照してください。

構造体内の検証の深さの設定構造体内の検証の深さを設定することを指定する

構造体内の検証の深さの設定を参照してください。

構造体内の検証の深さ入れ子構造体の解析の深さの制限

構造体内の検証の深さ (-k-limiting) を参照してください。

レポート

[レポート] ノードにあるオプションを以下に記載します。

オプション説明詳細
レポートの生成解析後にレポートを生成するかどうかの指定

レポートの生成を参照してください。

レポート テンプレート (Code Prover)解析レポートを生成するためのテンプレートの指定

レポート テンプレート (Code Prover または Bug Finder) を参照してください。

出力形式生成されるレポートの出力形式の指定

出力形式 (-report-output-format) を参照してください。

コンピューティングの設定

[コンピューティングの設定] ノードにあるオプションを以下に記載します。

オプション説明詳細
検証時間の制限検証の時間制限を指定

検証時間の制限 (-timeout) を参照してください。

詳細設定

[詳細設定] ノードにあるオプションを以下に記載します。

オプション説明詳細
コード検証の終了後に適用するコマンド/スクリプト検証の時間制限を指定

コード検証の終了後に適用するコマンド/スクリプト (-post-analysis-command) を参照してください。

その他解析の追加フラグを指定

その他を参照してください。

参考

トピック