callgrind с spawn-fcgi не создает данные профилирования
Мне нужно профилировать мое приложение C++, которое начинается с spawn-fcgi. Я пытался использовать callgrind, но вывод callgrind в KCachegrind не показывает никакой информации о моих приложениях.
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.
Пожалуйста, предложите правильный вариант, чтобы получить информацию о профилировании для моего приложения.
1 ответ
Я столкнулся с подобным поведением, когда профилированный процесс 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.