I need a dynamic call graph for my app. I run it with callgrind
tool (valgrind
suite) and got callgrind.out.xxxxx
file. Now, I want to make a graphical representation of this data. KCacheGrind
doesn't help me much because it draws a limited part of the graph (draws ~50 functions instead of ~1500 profiled and I don't know how to fix that). How can I get a graph image where all of the functions will be drawn?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
Ok, I've found the way. The generated callgrind.out
file you can convert to dot
file using gprof2dot (yes, this tool can parse callgrind
files as well). And then you can get the graph image using dot -T<type> dotfile.dot -o graphfile.<type>
回答2:
Using the following command to generate graph.png using gprof2dot
$ ./gprof2dot.py --format=callgrind --output=out.dot /path/to/callgrind.out
$ dot -Tpng out.dot -o graph.png