У меня есть процесс. Процесс вилки B. A и B - разные приложения. Оба скомпилированы с флагом -g.имена функций callgrind не показаны в дочерних процессах
, чтобы запустить его с callgrind я использую команду: Valgrind --tool = callgrind --trace-дети = да ./A [PARAMS]
callgrind.out.xxx для родительского процесса (A) содержит функцию имена. для дочернего процесса (B) - он не содержит. Что здесь может быть не так?
Благодаря
В этой документации также говорится, что для ребенка требуется специальный вызов ». * Если ваши программные вилки, ребенок наследует все данные профилирования, которые были собраны для родителя. Чтобы начать с пустых значений счетчика профиля в дочернем элементе, клиент запрос CALLGRIND_ZERO_STATS; может быть вставлен в код, который будет выполняться дочерним, непосредственно после fork. * ". Кроме того, процесс B - это другое приложение, запускаемое 'fork' +' exec', и нет документации о 'exec' – osgx
. Стоит отметить, что если вы хотите, чтобы valgrind отслеживал дочерние процессы, запущенные с' '' fork + exec' '', вам также нужен флаг '' '--trace-children = yes'''. См. Страницу valgrind '' 'man''' для документации о' '' exec'''. – SullX