Отладка JavaScript в Qt Creator

Вывод в консоль

Предпочтительным методом отладки ваших приложений AppStudio является использование сообщений console.log вашего кода QML, поскольку эти сообщения отображаются в консоли Qt Creator и подходят для всех платформ. Для работы не нужна инсталляция набора Qt. Необходим только AppStudio.

Для запуска приложения в Qt Creator щелкните Запуск в меню Инструменты > Внешние > AppStudio. Вы также можете нажать Alt+Shift+R на клавиатуре или нажать кнопку Запустить в левом нижнем углу окна Qt Creator.

Режим отладки Qt Creator

Версия Qt Creator в комплекте с AppStudio версии 4.0 обеспечивает немедленный доступ к инструментам отладки Qt Creator. Чтобы открыть ваше приложение в режиме отладки, либо нажмите F5 в Qt Creator, либо нажмите кнопку Начать отладку запуска проекта в левом нижнем углу окна Qt Creator.

См. раздел Взаимодействие с отладчиком в документации по Qt для получения подробной информации об использовании инструментов отладки в Qt Creator.

Примечание:

Хотя документация Qt содержит информацию об отладке C ++, для использования этого языка требуется лицензия Qt SDK, которая не предоставляется в AppStudio.

Точки останова

Точки останова можно использовать в Qt Creator, чтобы прерывать ваше приложение, когда оно достигает определенных строк кода, передавая вам управление. Затем вы можете проверить состояние приложения и продолжить выполнение построчно или непрерывно.

Можно вставить точку останова в приложении следующими способами:

  • Нажмите F9 (F8 в macOS) с указателем на строке, где вы хотите вставить точку останова.
  • Щелкните слева от номера строки.
  • Дважды щелкните в пустое место вида Точки останова и и укажите номер строки в появившемся окне Добавить точки останова.
  • Выберите в виде Точки останова Добавить точку останова и введите номер строки в появившемся окне Добавить точки останова.

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

Чтобы открыть окно Редактировать точки останова, дважды щелкните точку останова в виде Точки останова либо щелкните правой кнопкой точку останова в виде кода и щелкните Редактировать точку останова. В этом окне вы можете установить различные типы точек останова, а также условия до того, как приложение остановится на точке останова, количество раз, которое точка останова будет игнорироваться перед остановкой приложения, и команды для автоматического прохода при достижении точки останова.

Чтобы переместить точку останова, выберите ее и перетащите в нужное место. Чтобы удалить точку останова, нажмите еще раз F9 (F8 в macOS), щелкните значок точки останова или щелкните правой кнопкой точку останова и выберите Удалить выбранные точки останова или Удалить все точки останова.

Более подробно о точках останова см. в разделе Задание точек останова в документации Qt.

Профиль QML

Помимо возможного возникновения непредвиденных ошибок, которые мешают приложению работать должным образом, JavaScript также может привести к снижению производительности в приложении QML. Например, слишком активная работа JavaScript в небольшой промежуток времени может вызвать торможение. Можно использовать инструмент QML Profiler для поиска причины проблем с производительностью, отслеживая, в частности, используемые функции JavaScript, использование памяти и события ввода.

Чтобы включить QML Profiler,сначала убедитесь, что в вашем приложении не запущен Qt Creator. Затем, с открытым видом Проект, выберите Анализировать > QML Profiler. Откроется ваше приложение с открытым разделом QML Profiler в Qt Creator. Выполните нужные вам действия в приложении и щелкните Остановить в разделе QML Profiler. В разделе QML Profiler есть диаграмма сцены поведения вашего приложения. В вашем виде кода также будут отображаться процентные значения за время, которое ваше приложение потратило на выполнение каждой части своего кода.

Для получения подробной информации о QML Profiler см.Профилирование приложений QML документации по Qt.