Профилирование приложения в qnx momentics · web viewЗапускаем...
TRANSCRIPT
Профилирование приложения в QNX Momentics.
1. Установка ОСРВ QNX 6.3
Установка QNX будет производиться на виртуальную машину. Запускаем (или устанавливаем если не имеем) программу VMware (дальнейшие шаги могут различаться в разных версиях VMware).Нажимаем Файл->Новая виртуальная машина, выбираем обычный тип установки.Выбираем iso образ файла операционной системы (файл QNX630.iso).
Гостевая версия ОС “Другая”, версия “Other”.
1
Выбираем имя виртуальной машины и её расположение.Указываем размер диска (например 4Gb).
Проводим настройку оборудования виртуальной машины, например можно изменить объём оперативной памяти. В устройства добавляем оборудование “USB-контроллер”.
2
Нажимаем готово, виртуальная машина создана.Запускаем созданную виртуальную машину.Установку QNX производить в соответствии с главой 1 книги Сергея Зыля “QNX Momentics основы применения”.Лицензионный ключ 57WA-U9L0-AB0H-8HZE-T5TJ.
3
Запускаем QNX, заходим как superuser.
2. Создание первого приложения
Запускаем среду разработки QNX Momentics (Launch->QNX Momentics 6.3.0->Integrated Development Environment).
Создаём новый проект File->New->QNX C++ Project.
4
Задаём имя проекта ->next.
Убираем все Build Variants, и оставляем только x86 -> finish.
5
Собираем проект (Ctrl+B).
6
Нажимаем Run->Run…Создаём новое C/C++ Local Application.
В C/C++ Application выбираем имя нашего приложения без _g.
Запускаем проект (должна загореться кнопка RUN), в окно console выведется результат работы программы.
3. Профилирование приложения.
Выбираем одну из предложенных программ.Создаём новый проект или редактируем готовый.
Если нужно перенести файл проекта в QNX с внешнего носителя, то он определяется в системе по пути /fs/hd.
7
Собираем и проверяем работоспособность проекта.Для осуществления профилирования требуется добавить две библиотеки
#include <sys/neutrino.h>#include <sys/trace.h>
В код программы добавляем первой же командой в функции mainTraceEvent(_NTO_TRACE_FLUSHBUFFER);TraceEvent(_NTO_TRACE_START);
Добавляем в конец функции main перед выходом из функции (exit или return) TraceEvent(_NTO_TRACE_STOP);
Собираем проект (Ctrl+B).Запускаем файловый менеджер (Launch->Utilities->File Manager).Идём в папку /root/workspace/имя_проекта/x86/oОткрываем два терминала (Ctrl+T).В первом терминале пишем PATH=.:PATHВо втором терминале tracelogger –n0 &В первом терминале пишем название проекта (запустится наше приложение).Во втором терминале останавливаем работу трейслоггера slay tracelogger, нажимаем ещё раз Enter.В директории /dev/shmem появился файл-отчёт tracebuffer.kevКопируем данный файл в папку с проектом командой cp /dev/shmem/tracebuffer.kev /root/workspace/имя_проекта
8
Возвращаемся в среду разработки Momentics.В навигаторе проектов кликаем правой кнопкой мыши по названию проекта ->refreshОткрываем добавленный файл tracebuffer.kev
Правой кнопкой мыши по графикам ->Event Owner Filters->Custom Owner FilterТам убираем всё, и выбираем ядро procnto, sh и наш проект.
9
Добавляем стрелочки Display->Show IPC
10
Приближаем интересующий участок.
11