Символы отладки игнорируются в Valgrind - PullRequest
0 голосов
/ 17 октября 2018

Мы компилируем приложение cpp в Ubuntu 16.04.

Мы включаем символы отладки во время компиляции (мы пытались использовать и -g, и -ggdb3, в обоих случаях отключив флаги оптимизации), и это подтверждаетсяиз-за того, что мы можем правильно использовать GDB (установка точек останова и т. д.).

Теперь нам бы хотелось иметь дерево вызовов, поэтому мы используем Valgrind (callgrind).Он выполняется без ошибок, но когда мы взглянем на вышеупомянутое дерево, мы получим что-то вроде.

Вот что мы получаем (обратите внимание, что он жалуется на отсутствие отладочной информации):

enter image description here

Любая подсказка?

РЕДАКТИРОВАТЬ: Хорошо, поэтому мы обнаружили, что нам нужно вызвать Kcachegrind с той же машины, чтобы увидеть исходный код.Приведенный выше снимок экрана был сделан с другого компьютера, который открыл выходной файл Valgrind.Дело в том, что даже когда мы запускаем его на той же машине (и наш источник доступен на вкладке источника), график вызовов вывода кода все еще не читается.Проблема может заключаться в том, как написан код, учитывая, что Valgrind возвращает следующие предупреждения: enter image description here

...