動的コールグラフ

ftrace

DSAS開発者の部屋:オープンソースを楽しむエンジニアの二日目 - ftraceコマンドを書く
http://dsas.blog.klab.org/archives/51025093.html

instrumental

Index of /~krahmer/instrumental
http://www.suse.de/~krahmer/instrumental/

$ cc -g -finstrument-functions -o testprog testprog.c
$ cc -fPIC -c instrumental.c && ld -Bshareable instrumental.o -o inst.so
This generates a shared object file you can preload with LD_PRELOAD
$ LD_PRELOAD=./inst.so testprog

これを実行すると /tmp/log.inst.dot.PID(PID はプロセスID)が作成される。
このファイルの最後の行に"}"を追加し、build-pdf 中の dfile の名前を書き換えて実行するとコールグラフを描いた x.pdf が生成される。

$ cc -g -finstrument-functions -o testprog testprog.c instrumental.o

とスタティックリンクしてもよい。


この論文には Perl で AUTOLOAD を使ってコールグラフ生成する方法も書かれている。

etrace

同じく -finstrument-functions を使って出力をPythonで整形したもの。
http://ndevilla.free.fr/etrace/