このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
Code Prover の実行時チェック
Polyspace® Code Prover™ は、特定のランタイム エラーに対して C/C++ コードの各操作をチェックし、検証結果をレッド、グリーンまたはオレンジ チェックとして表示します。詳細は、Code Prover 検証結果とソース コードの色を参照してください。
レッド チェックまたはオレンジ チェックをレビューし、コードを修正するかどうかを判断しなければなりません。次の表は、Polyspace Code Prover が実行するチェックと、これらのチェックをレビューする方法をまとめています。
データ フロー チェック
チェック | レビュー方法 | 詳細 |
---|---|---|
呼び出されない関数 | 関数が | 呼び出されていない関数チェックのレビューと修正 |
到達不能の関数 | 関数の呼び出しサイトを特定し、それが到達不能コードに出現する理由を調べる。 | 到達不能な関数チェックのレビューと修正 |
未初期化ローカル変数 | 変数が事前に初期化されていれば検出して、プログラムがその初期化をバイパスする可能性があるかどうか確認する。 | 未初期化ローカル変数チェックのレビューと修正 |
未初期化ポインター | ポインターが事前に初期化されていれば検出して、プログラムがその初期化をバイパスする可能性があるかどうかを確認する。 | 未初期化ポインター チェックのレビューと修正 |
未初期化変数 | グローバル変数が事前に初期化されていれば検出して、プログラムがその初期化をバイパスする可能性があるかどうかを確認する。 | 未初期化変数チェックのレビューと修正 |
初期化されていない戻り値 | 関数本体全体を調べて | 初期化されていない戻り値チェックのレビューと修正 |
到達不能コード | コード内の条件付きステートメントが冗長な理由 (たとえば常に ture または false になるなど) を調べる。 | 到達不能コード チェックのレビューと修正 |
数値チェック
チェック | レビュー方法 | 詳細 |
---|---|---|
ゼロ除算 | 分母係数がゼロ値になる操作が事前に行われていないかコード内を確認する。 | ゼロ除算チェックのレビューと修正 |
無効なシフト演算 | 範囲外のシフト量になる操作、または左にシフトされる負の値になる操作が事前に行われていないかコード内を確認する。 | 無効なシフト演算チェックのレビューと修正 |
オーバーフロー | 演算オーバーフローになる操作が事前に行われていないかコード内を確認する。 | オーバーフロー チェックのレビューと修正 |
静的メモリ チェック
チェック | レビュー方法 | 詳細 |
---|---|---|
絶対アドレスの使用 | コード内での絶対アドレスの使用法を確認し、アドレスが有効であることを確認する。 | 絶対アドレスの使用チェックのレビューと修正 |
不適切にデリファレンスされたポインター | ポインターが割り当て済みメモリ バッファー外を指すことになる操作が事前に行われていないかコード内を確認する。 | 不適切にデリファレンスされたポインター チェックのレビューと修正 |
範囲外の配列インデックス | 配列インデックスが配列のサイズを超えることになる操作が事前に行われていないかコード内を確認する。 | 範囲外の配列インデックス チェックのレビューと修正 |
制御フロー チェック
チェック | レビュー方法 | 詳細 |
---|---|---|
無限呼び出し | 関数本体の操作を確認し、現在の関数呼び出し固有の問題によって発生するランタイム エラーを見つける。 | 無限呼び出しチェックのレビューと修正 |
無限ループ | ループ内の操作を確認し、ループが終了しない理由またはループ実行の 1 つで明確なランタイム エラーが発生する理由を判断する。 | 無限ループ チェックのレビューと修正 |
C++ チェック
チェック | レビュー方法 | 詳細 |
---|---|---|
無効な C++ に固有の演算 | 非正の配列サイズになる根本原因、または | 無効な C++ に固有の演算チェックのレビューと修正 |
値を返さない関数 | 関数本体全体を調べて | 値を返さない関数チェックのレビューと修正 |
誤ったオブジェクト指向プログラミング | 特定の | 誤ったオブジェクト指向プログラミング チェックのレビューと修正 |
null の this ポインターを呼び出すメソッド | 現在のオブジェクトを指すポインターが | null の this ポインターを呼び出すメソッド チェックのレビューと修正 |
キャッチされていない例外 | 例外がどうやってキャッチされずにスローされた関数からエスケープしたのか調べる。 | キャッチされていない例外チェックのレビューと修正 |
その他のチェック
チェック | レビュー方法 | 詳細 |
---|---|---|
正確性の条件 | 関数ポインターの誤用、配列の不適切な変換、または指定された制約外の変数値になる根本原因を見つける。 | 正確性の条件チェックのレビューと修正 |
標準ライブラリ ルーチンの無効な使用 | 標準ライブラリ ルーチンに対する現在の呼び出しの引数が無効である理由を調べる。 | 標準ライブラリ ルーチンの無効な使用チェックのレビューと修正 |
ユーザー アサーション |
| ユーザー アサーション チェックのレビューと修正 |