Main Content

Polyspace Access Web インターフェイスでの Bug Finder の結果の解釈

このトピックでは、Polyspace Access Web インターフェイスで Bug Finder の結果をレビューする方法を説明します。Polyspace デスクトップ製品のユーザー インターフェイスでの同様のワークフローについては、Polyspace デスクトップ ユーザー インターフェイスでの Bug Finder の結果の解釈 (Polyspace Bug Finder)を参照してください。IDE で Polyspace as You Code の結果をレビューする方法については、IDE での Polyspace as You Code 結果のレビュー (Polyspace Bug Finder)を参照してください。

Polyspace Access の [レビュー] ビューで Bug Finder 解析の結果を開くと、[結果のリスト] ペインにリストが表示されます。結果は、欠陥、コーディング ルール違反、またはコード メトリクスで構成されています。

まず、以下のようにしてレビューのフォーカスを絞り込むことができます。

  • ツールストリップにあるフィルターを使用してリストを絞り込みます。たとえば、影響度の高い欠陥にフォーカスできます。

  • [結果のリスト] の列ヘッダーをクリックし、その列の内容に基づいてリストを並べ替えます。たとえば、[グループ] または [ファイル] で並べ替えることができます。

リストを絞り込んで並べ替えたら、個別の結果のレビューを開始できます。このトピックでは、結果のレビュー方法を説明します。

レビューを開始するには、リスト内の結果を選択します。

結果の詳細のメッセージの解釈

メッセージの解釈

最初の手順は何が間違っているのかを理解することです。[結果の詳細] ペインのメッセージと、[ソース コード] ペインの関連するコード行を確認します。

追加のヘルプ リソースの検索

場合によって、特定の結果に関する追加のヘルプが必要なことがあります。 アイコンをクリックすると、選択した結果に関するヘルプ ページが開きます。結果を示すコード例を確認します。問題の修正に関する追加の根拠を提供する CERT-C などの外部標準をチェックします。欠陥に対する修正の提案が利用可能な場合には、 アイコンをクリックすると、その提案が表示されます。

この時点で、問題を修正するかどうかの判断ができる可能性があります。解決策を特定したら、そのタイプのすべての結果をまとめてレビューすると役立つ可能性があります。

結果の根本原因の検出

場合によって、結果が表示された実際の場所から遠い場所に根本原因が存在することがあります。たとえば、初期化が到達不能であるために、読み取る変数が未初期化である場合があります。この欠陥は変数を読み取る際に表示されますが、その根本原因は、常に false となる以前の if 条件または while 条件である可能性があります。

関連するイベントへの移動

通常、[結果の詳細] ペインには、結果につながるイベントの順序が表示されます。[ソース コード] ペインでも、それらのイベントが強調表示されます。

上記のイベント トレースバックで、この順序は以下のように示されています。

  1. 変数 value が宣言される。

  2. 実行パスが if ステートメントをバイパスする。この情報は、変数が if ブロック内で初期化される場合に関係する可能性があります。

  3. 現在の欠陥の場所: 未初期化変数

通常、トレースバックには制御フローの主要なポイント (条件付きステートメントまたはループの開始やバイパス、関数の開始など) が示されます。特定の欠陥については、トレースバックにその欠陥に関連する他の種類のイベントが示されます。たとえば、[宣言の不一致] 欠陥の場合、トレースバックに競合する宣言がある 2 つの場所が示されます。

独自のナビゲーション パスの作成

イベント トレースバックを使用できない場合、他のナビゲーション ツールを使用してコード内の独自のパスをトレースします。

コード内の経路の移動を開始する前に、調査対象が何であるかを考えます。回答に基づいて、適切なナビゲーション ツールを選択します。次に例を示します。

  • [未初期化変数] 欠陥を調べるには、変数がまったく初期化されていないことの確認が必要な場合があります。変数の以前のインスタンスを調査するには、[ソース コード] ペインでその変数を右クリックし、[すべての参照を検索] を選択します。これらのオプションを使用すると、特定の変数のインスタンスのみが一覧表示され、スコープの異なる同名の他の変数は表示されません。

  • 以下の [MISRA C:2012 Rule 17.7] の違反を調査する場合、

    The value returned by a function having non-void return type shall be used.
    関数呼び出しから関数定義への移動が必要なことがあります。関数を右クリックし、[定義に移動] を選択します。

現在の結果から移動した後に戻るには、[結果の詳細] ペインの アイコンを使用します。

[ソース コード] ペインから別の結果を選択するには、Ctrl キーを押しながらその結果をクリックするか、または右クリックして [この位置における結果の選択] を選択します。[結果の詳細] ペインは更新されますが、[結果のリスト] ペインでは、選択した結果が強調表示されません。[結果のリスト] で結果をクリックすると、[結果の詳細] ペインと [ソース コード] ペインが更新されます。

関連するトピック