K.Sasada's Home Page

callg.rb / コールグラフ作成スクリプト

なんでしょう?

Ruby のメソッド呼び出しを見て、メソッドのコールグラフを描く Ruby スクリプトです。実際にグラフを書くのは Graphviz です。

なにが必要?

どうやって使うの?

ruby -r callg.rb x.rb

とすることで、x.rb 実行中に呼び出したメソッドのコールグラフを作ります。

x.rb.dot というファイルを作り、デフォルトでは x.rb.dot.png なんていう PNG ファイルが出てきます。

ちなみに、ライブラリとして適当なフォルダに突っ込んでおくとよく使う人には便利かもしれません。けれど、インストーラなどという高尚なものは作り方を知らないのでありません。

ご注意

tracer.rb と併用できません。使ってるから。

終わらないスクリプトはグラフ書けません。END{} 内で書き書きしてるんで。

間違いがあっても責任取れません。

細かい設定は?

callg.rb 内を見てください。

ちょこっとだけ設定があったりなかったりします。

どこにあるの?

ここです。

./callg.rb

ライセンスは全部 ruby と一緒ということでお願いします。

ライセンスの詳細知らないんですけど。うーん、この一文を書くのが非常に面倒。

さんぷる

手前味噌ですが、rava.rb をちょっとやってみました。

./rava.rb.dot.png

もうわけがわかりません。

コンセプト

とりあえず dot の練習です。はい。ついでに卒論の(略)。

真面目にやっていないので、抜け、バグがある可能性は大いにあります。あったらこっそり教えてください。

アクセスが集中してるところとか、見れるような気がするので、もしかしたら最適化に使えるのかもしれません。使えないかもしれません。

既にどこかにありそうで、多分あったりするような気もしますけど、まぁいいや。公開です。もうあったらごめんなさい。

ネタ自体は、青木峰郎さんがやっていらした C のソースコードを静的に解析し、 dot でコールグラフを作っていらしたやつです。動的にしてみました。

雑談

しかし、なんで矢印に破線とか太線使おうとしてもきちんと出てくれないんだろう。うーん、謎。

Sasada Koichi / sasada@namikilab.tuat.ac.jp
$Date: 2003/04/28 10:27:51 $