Как я могу позволить Callgrind получить доступ к исходному коду моего проекта Qt? - PullRequest
2 голосов
/ 09 июня 2011

Я создал проект Qt в режиме отладки с Qt Creator, запустил Callgrind для генерации данных профилирования и попытался загрузить их в Cachegrind. Я заметил, что вижу информацию о профилировании только для классов Qt, поэтому решил, что, должно быть, забыл включить решающий флаг.

Команда qmake Qt Creator выглядит следующим образом:

qmake /path/to/project/MyProject/MyProject.pro -r -spec linux-g++-64 CONFIG+=debug

Пример вывода компиляции для одного файла:

g++ -c -m64 -pipe -g -Wall -W -D_REENTRANT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I../Flowchart -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include -I. -I. -I../Flowchart -I. -o main.o ../Flowchart/main.cpp

Флаг -g есть, поэтому отладочная информация должна быть доступна. Я проверил это, запустив gdb на исполняемом файле и попытавшись посмотреть на некоторый случайный исходный код с помощью l.

Я использовал команду Callgrind:

valgrind --tool=callgrind ./MyProject

Что мне здесь не хватает?

1 Ответ

0 голосов
/ 24 января 2012

Вы должны сделать:

valgrind --tool=callgrind --trace-children=yes --demangle=yes ./MyProject

Также, в зависимости от дистрибутива Linux, вам может понадобиться информация об отладке в библиотеках QT, с которыми вы ссылаетесь.

...