質問: 過去のソフトの解析を現在行っているのですが 関数の呼び出しをリスト化するアプリは無いでしょうか doxygenでコールグラフは作れたのですがあまりに入り組んでいて、書類化出来ないので csv等で出力したいです(csvに限らずとにかくリスト化できればいいです) fooa->foob->fooc1 ->fooc2 という呼び出しだったら fooa,foob,fooc1 ,,fooc2 のように出力するソフトを探しています 無意味に再帰していたり、関数のコールがループしたりしていたりするのでそれもマークをつけてくれると嬉しいですが とにかくリスト化できるようなアプリがあったら教えてください
回答: 残念ながら巨大なステップ数の場合は、既存のツールではほぼ役に立ちません。 自分の場合は、Perlで2つの簡単なスクリプトを作りました。 **その1)ソースから'('を検出して次のようなリスト1を出力するスクリプト1** ---< リスト1 <関数名>:<その関数内で使用されている関数名> ... --- ※お好みで予めプリプロセッサを通しておくと良いかも。 **その2)リスト1を辿って次のようなリスト2を出力するスクリプト2** ---< リスト2 <関数名1>:<関数名2>:<関数名3>... ... --- ※「関数1から関数2を呼び出していて、更に関数2から関数3を呼び出す」を意味している。 リスト1ができると逆に親は誰か調べることで、ある関数に変更を加えた場合の上位から見た影響範囲を調べることができて重宝します。 これらのスクリプトは瞬間にリストが得られますし、既存ソースの問題点が発見できたりとメリットが非常に多いです。 そうした理由から、自分で使うツールは自分で作ることをお勧めします。 また、無料で入手できるツールは「何があっても責任を持たない」と言ったものばかりなので使用は避けるべきです。