funtr 使用方法



【機能概要】
 c言語で書かれたソースの関数ツリーを表示します。
【実行形式】
    funtr [-E] [-EUC] [-v] [-i[{F|E}]] [-w n] [-l list1] [-L file1]
          [-t list2] [-T file2] [-r list3] [-R file3] 
          [-m list4] [-M file4] [-I dir] c_files

【パラメータ】
    -E         S-JISコード表示不可の場合に指定します。

    -EUC       文字セットをEUCコードとみなします。
    
    -v         ツリーを逆方向から作成します。

    -i[{F|E}]  関数情報も出力します。
               'F'を付加した場合には、関数情報を関数名順に出力します。
               'E'を付加した場合には、ファイルのエントリ順に出力します。

    -w n       編集行のサイズ (80 - 256)

    -l list1   関数ツリーの出力を行う関数名リスト
               このそれぞれの形式は次のようになります。
                 [file#]function
               複数指定する場合には、カンマで結合します。
               各関数名にはワイルドカード(*,?)を使用できます。

    -L file1   関数ツリーの出力を行う関数名を記述したファイル名
               これは関数名を羅列したテキストファイルです。
        例えば、そのファイルには以下のように記述します。
                 main
                 check_argument
                 subfunction_abc

    -t list2   データの型名リスト
        未定義となるデータの型名を指定します。
               これを指定しないで、未定義のデータ型がある場合には、関数情報のパラメータは
        パラメータ名と型名とが分離されません。
        例えば、UCHARという語が、あるヘッダーで定義されていてもそのファイルが読み込
        まれない場合には、未定義のデータ型となります。
        この場合には、次のように指定します。
          -t UCHAR
               複数指定する場合には、カンマで結合します。

    -T file2   データの型名を記述したファイル名
               これはデータの型名を羅列したテキストファイルです。

    -r list3   省略関数名リスト
               ただし標準関数はもともと除外されます。
               もしそれらで出力したいものがある場合には、次のように指定して下さい。
                 !function_name	
               複数指定する場合には、カンマで結合します。
               各関数名にはワイルドカード(*,?)を使用できます。

    -R file3   省略関数名を記述したファイル名
               これは省略関数名を羅列したテキストファイルです。

    -m list4   同一関数名に対するファイル指定リスト
               多くのソースファイルを指定した場合には、同一の関数が複数のファイル
        に存在するということが起こり得ます。
        この場合、その関数以下のツリーを表示することができません。
        そこで、どのファイルのものにするかということをこのパラメータで指定
        します。
               複数指定する場合には、カンマで結合します。

    -M file4   同一関数名に対するファイル指定を記述したファイル名
               これは同一関数名に対するファイル指定を羅列したテキストファイルです。

    -I dir     ヘッダーファイルが存在するディレクトリパス名

    c_files    c言語のソースファイル名

【補足説明】
 各関数は次の形式で表示されます。
  ・[level,seq[{R|D}][M]] function ... 存在関数かつ初回出現関数
    level                          ... 関数コールのネストレベル番号
    seq                            ... 同一ネストレベル内の通番
    R                              ... 再帰的に呼び出されている関数
    D                              ... マクロ関数
    M                              ... 重複関数
  ・<level,seq[{R|D}]> function    ... 既出関数かつ下位関数あり
    level                          ... 関数コールのネストレベル番号
    seq                            ... 同一ネストレベル内の通番
    R                              ... 再帰的に呼び出されている関数
    D                              ... マクロ関数
  ・[] funtion                     ... 非存在関数
  ・[A] function                   ... 非存在関数(引数で渡された関数)
  ・[M] function                   ... 重複関数

【制限事項】
・関数名と同じデータ名を使用し、それを関数の引数にした場合には、関数名とみなされてしまいます。
・関数名やデータ名が64文字以上の場合、64文字までしか認識されません。

【使用例】
 ・funtr a.c b.c a.h        ... 各ソースに含まれる全関数のツリーを表示します。
 ・funtr -l a.c#main a.c b.c       ... a.cのmainのツリーを表示します。
 ・funtr -r !printf a.c b.c        ... printf関数も表示させます。
 ・funtr -iF main a.c              ... mainのツリーを表示すると共に、配下の関数情報を関数名
                    順に表示します。
 ・funtr -v -l fun1,fun2 a.c       ... fun1及びfun2について逆方向の関数ツリーを表示します。

ホームページへ