Мне нужен динамический график вызовов для моего приложения. Я запустил его с помощью инструмента callgrind
(valgrind
suite) и получил файл callgrind.out.xxxxx
. Теперь я хочу сделать графическое представление этих данных. KCacheGrind
мне не очень помогает, потому что он рисует ограниченную часть графика (рисует ~ 50 функций вместо ~ 1500 профилированных, и я не знаю, как это исправить). Как получить графическое изображение, в котором будут нарисованы все функции?
Интерпретация данных callgrind
Ответ 1
Хорошо, я нашел путь. Сгенерированный файл callgrind.out
, который вы можете преобразовать в файл dot
, используя gprof2dot (да, этот инструмент также может анализировать файлы callgrind
). И затем вы можете получить изображение графика, используя dot -T<type> dotfile.dot -o graphfile.<type>
Ответ 2
Используя следующую команду для генерации graph.png с помощью gprof2dot
$./gprof2dot.py --format=callgrind --output=out.dot /tmp/cachegrind.out.1360843301.16101
$dot -Tpng out.dot -o graph.png