Мы компилируем приложение cpp в Ubuntu 16.04.
Мы включаем символы отладки во время компиляции (мы пытались использовать и -g, и -ggdb3, в обоих случаях отключив флаги оптимизации), и это подтверждаетсяиз-за того, что мы можем правильно использовать GDB (установка точек останова и т. д.).
Теперь нам бы хотелось иметь дерево вызовов, поэтому мы используем Valgrind (callgrind).Он выполняется без ошибок, но когда мы взглянем на вышеупомянутое дерево, мы получим что-то вроде.
Вот что мы получаем (обратите внимание, что он жалуется на отсутствие отладочной информации):
Любая подсказка?
РЕДАКТИРОВАТЬ: Хорошо, поэтому мы обнаружили, что нам нужно вызвать Kcachegrind с той же машины, чтобы увидеть исходный код.Приведенный выше снимок экрана был сделан с другого компьютера, который открыл выходной файл Valgrind.Дело в том, что даже когда мы запускаем его на той же машине (и наш источник доступен на вкладке источника), график вызовов вывода кода все еще не читается.Проблема может заключаться в том, как написан код, учитывая, что Valgrind возвращает следующие предупреждения: