関連情報

Fortran Builder でコールグラフを作成する

Fortran Builder では、プログラム単位と手続の間の呼び出し関係の表(コールグラフ)を作成することができます。既存のプログラムを解読する際の補助ツールとしてコールグラフをご利用ください。

※ 以下の例では Windows 版を用いていますが、Mac 版でも同様の手順でご利用いただけます。

利用例(一度も呼び出されない手続を見つける)

以下のプログラム例 maths_funcs.f90 と use_funcs.f90 に対して、どこからも呼び出されない手続があるかどうか、コールグラフを用いて調べてみます。

[ maths_funcs.f90 ]

module maths_functions
  implicit none
contains
  function add(a, b)
    integer, intent(in) :: a, b
    integer add
    add = a + b
  end function
  function subtract(a, b)
    integer, intent(in) :: a, b
    integer subtract
    subtract = a - b
  end function
end module

[ use_funcs.f90 ]

program main
  use maths_functions
  implicit none
  integer :: a = 2, b = 3
  print *, 'a + b =', add(a, b)
end program

※ 以下の説明は、これらのソースファイルが Fortran Builder のプロジェクトに追加されていることを前提としています。

Fortran Builder のメニューバーから「ツール > コールグラフの表示」を選択してください。

メニュー

「コールグラフの表示」ウィンドウが開き、プロジェクトに追加されている Fortran ソースファイルの一覧が表示されます。
対象のソースファイル maths_funcs.f90 と use_funcs.f90 にチェックを入れて「OK」ボタンを押してください。

ウィンドウ

コールグラフ callgraph.txt がプロジェクトフォルダーに作成されます。
「呼び出しテーブル」を見ると、モジュール maths_functions に含まれる手続 subtract は「呼び出し元」が「無し」となっており、どこからも呼び出されないことが分かります。

[ ccallgraph.txt ]

コールグラフ 2015年02月02日 15:44

    1: MAIN
    2:     ADD
    3: SUBTRACT


コールグラフの索引

   行    手続
    2    ADD, in module MATHS_FUNCTIONS
    1    MAIN
    3    SUBTRACT, in module MATHS_FUNCTIONS


呼び出しテーブル

  手続       呼び出し元
  ADD        MAIN
  SUBTRACT   無し

Results matter. Trust NAG.
Privacy Policy | Trademarks