MyTetra Share
Делитесь знаниями!
Как добавить опции профилирования в Qt
Время создания: 29.11.2017 17:12
Текстовые метки: qt, c++, профилирование, опции, отладка, debug, profile
Раздел: Компьютер - Программирование - Язык C++ (Си++) - Библиотека Qt - Принципы написания кода
Запись: xintrea/mytetra_syncro/master/base/1511964733j7tspnuva4/text.html на raw.github.com

Для того, чтобы включить опции профилирования (-pg) при сборке программы, в файле проекта (.pro можно прописать следующие опции:


QMAKE_CXXFLAGS_DEBUG += -pg

QMAKE_LFLAGS_DEBUG += -pg


При этом, в момент сборки компилятору GCC будет передаваться опция -pg, чтобы бинарник собрался в режиме профилирования.


Способа передать эти параметры через командную строку в qmake - найти не смог.


Если бинарник собрался в режиме профилирования, то после его запуска и завершения его работы в каталоге с ним должен появиться файл gmon.out. Просмотреть информацию из этого файла можно с помощью утилиты gprof. Используется эта утилита так:


gprof <имя_бинарника> gmon.out -p


или, чтобы увидеть граф вызовов:


gprof <имя_бинарника> gmon.out -q


или, чтобы увидеть аннотированные исходники:


gprof <имя_бинарника> gmon.out -A


В результате будет сформирован отчет об использовании каждой функции/метода в программе. Да, этой утилите обязательно нужно указывать имя бинарника, чтобы она могла сопоставить метки в файле gmon.out с реальными вызовами функций.


Внимание! В GCC 6 существует баг, из-за которого формируется дефолтный (почти пустой) файл gmon.out. И gprof проказывает пустой отчет. Чтобы обойти эту проблему, можно воспользоваться опцией -no-pie:


QMAKE_CXXFLAGS_DEBUG += -pg -no-pie

QMAKE_LFLAGS_DEBUG += -pg -no-pie



Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования