nAG Fortran コンパイラでコールグラフを作成する

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

コマンド

nagfor =callgraph [option]... file...

オプションの詳細は「nAG Fortran Compiler, Release 7.2 マニュアル - 2.21 コールグラフの生成」をご参照ください。

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

以下のプログラム 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

コマンドラインから、以下のコマンドを打ち込んでください。

nagfor =callgraph -calledby maths_funcs.f90 use_funcs.f90

以下のようなコールグラフが出力されます。
「呼び出しテーブル」を見ると、モジュール maths_functions に含まれる手続 subtract は「呼び出し元」が「無し」となっており、どこからも呼び出されないことが分かります。

コールグラフ 2015年01月08日 16:26

    1: MAIN
    2:     ADD
    3: SUBTRACT


呼び出しテーブル

  手続       呼び出し元
  ADD        MAIN
  SUBTRACT   無し
関連情報
© 日本ニューメリカルアルゴリズムズグループ株式会社 2024
Privacy Policy  /  Trademarks