コールグラフ

用意するものはgprof, graphviz(dotコマンド), cgprof
gprofのヘルプやマニュアルにある通り,コンパイル時とリンク時に
gccに-pgオプションをつける.

$ ./a.out
$ gprof ./a.out | cgprof -Tps > callgpraph.ps

とすればよい.


既にgprof ./a.outを実行した後のプロファイルファイル(profile)を保存しているなら,

$ cgprof profile | dotty -

または,

$ cgprof -Tps profile | display

で表示される.
後者はprofileの引数の位置が-Tpsより後ろにないとdot用のファイルができるようだ.
cgprofのソースは特に確認していないが.


それと-hでは-gオプションがあると書かれているが,うまく動かない.
これも引数の位置に制約がありそうだな.

参考

pvtrace使っているもの


pvtraceを修正したものを使っているもの


cgprofを使っているもの


"類似ツール"で色々まとめてられている

メモ

addr2line
mangle/demangle
c++filt

addr2line
$ gcc -Wl,-Map=test.map -g -o a.out tmp.c
$ grep main test.map
                0x0000000008048300                __libc_start_main@@GLIBC_2.0
                0x00000000080483d4                main
$ addr2line 0x080483d4 -e a.out -f
main
/home/XXX/tmp/tmp.c:6
$