メインコンテンツ

Polyspace デスクトップ ユーザー インターフェイスの [呼び出し階層]

このトピックでは、Polyspace® デスクトップ ユーザー インターフェイスに注目します。Polyspace Access™ Web インターフェイスでの同等のペインについては、Polyspace Access Web インターフェイスの [呼び出し階層] (Polyspace Access)を参照してください。

[呼び出し階層] ペインには、ソース コードの関数の呼び出しツリーが表示されます。

関数 foo の場合は、[呼び出し階層] ペインには、foo を呼び出す関数およびタスク (呼び出し元) と foo によって呼び出される関数およびタスク (呼び出し先) が一覧表示されます。呼び出し元は、 (関数) または (タスク) によって示されます。呼び出し先は、 (関数) または (タスク) によって示されます。[呼び出し階層] ペインには、直接関数呼び出しと関数ポインターによる間接呼び出しが一覧表示されます。間接呼び出しは アイコンを付けて表示されます。

結果の詳細の アイコンを使用して [呼び出し階層] ペインを開きます。ペインを更新する方法は以下です。

  • [結果のリスト] または [ソース] ペインの欠陥をクリックします。欠陥を含む関数とその呼び出し元および呼び出し先が表示されます。

  • 関数名を右クリックし、[定義に移動] を選択します。関数の呼び出し元と呼び出し先が表示されます。

この例では、[呼び出し階層] ペインには関数 generic_validation とその呼び出し元および呼び出し先が表示されます。

[呼び出し階層] ペインの行番号はソース コードの異なる行を参照します。

  • 関数名については、行番号は関数定義の最初を参照。generic_validation の定義は 69 行目から始まる。

  • 呼び出し先名については、行番号は呼び出し先が呼び出される行を参照。呼び出し先 functional_ranges は 86 行目で generic_validation によって呼び出される。

  • 呼び出し元名については、行番号は呼び出し元が関数を呼び出す行を参照。呼び出し元 main は 50 行目で generic_validation を呼び出す。

ヒント

ソース コードの呼び出し場所に移動するには、呼び出し元または呼び出し先の名前を選択します。

[呼び出し階層] ペインでサポートされているアクション

[呼び出し階層] ペインでは、次のアクションを実行できます。

呼び出し元および呼び出し先の表示と非表示

ビューをカスタマイズして呼び出し元のみまたは呼び出し先のみを表示します。このボタンをクリックして呼び出し元および呼び出し先を表示または非表示にします。

呼び出し階層での移動

ソース コードの呼び出し階層内で移動できます。関数の場合、呼び出し元名または呼び出し先名をダブル クリックし、ソース コードの呼び出し元または呼び出し側の定義に移動します。

関数がスタブ化されているかどうかの判断

[スタブ] 列から、関数がスタブ化されているかどうかを判断できます。列のエントリに、関数がスタブ化された理由が表示されます。

  • 自動: Polyspace で関数定義が見つかりません。たとえば、定義を含むファイルが提供されませんでした。

  • 標準ライブラリ: 関数が標準ライブラリ関数です。Polyspace プロジェクトに関数定義を明示的に提供していません。

  • 標準ライブラリにマッピング: オプション -code-behavior-specifications を使用して関数を標準ライブラリ関数にマッピングしています。

Bug Finder での呼び出し階層の表示の制限事項

Polyspace Bug Finder™ では、関数ポインターやデッド コードを介した呼び出しについては特に、関数の呼び出し元と呼び出し先がすべては表示されない場合があります。

たとえば、[呼び出し階層] ペインは次のようになります。

  • at_exit() および at_quick_exit() で登録され、それぞれ exit() および quick_exit() で呼び出される関数は表示されません。

  • 多数の関数ポインターからなる配列を介して関数が呼び出された場合、すべての関数呼び出しが表示されないことがあります。

  • C++ 関数 virtual の呼び出しの一部が表示されないことがあります。