2014-02-05 1 views
3

Мне нужно профилировать мое приложение C++, которое начинается с spawn-fcgi. Я пытался использовать callgrind, но вывод callgrind в KCachegrind не показывает никакой информации о моих приложениях.callgrind with spawn-fcgi не создает данные профилирования

valgrind --tool=callgrind --dump-instr=yes --simulate-cache=yes --collect-jumps=yes --demangle=no --trace-children=yes --callgrind-out-file=%p spawn-fcgi -s /tmp/sock.tmp ./myApp arg1 arg2 

Эта команда создает два файла 10012 и 10013, но второй файл пуст. В первом файле есть служебная информация о местоположении spawn-fcgi, ld-2. *. So amd libc.

Пожалуйста, предложите правильный вариант получения профилирующей информации для моего приложения.

ответ

2

Я испытал подобное поведение, когда профилированный процесс fastcgi разбился при выходе (поэтому статистика не сбрасывается при завершении с помощью SIGSEGV).

Я использовал callgrind_control инструмент для дампа статистики в произвольной точке времени:

callgrind_control --dump 

Также вы можете остановить сбор статистики с callgrind_control -i off, снова включить с callgrind_control -i on, сбросьте с callgrind_control -z.

См. callgrind_control руководство пользователя для получения более подробной информации http://valgrind.org/docs/manual/cl-manual.html.