Отладка и профилирование Qt WebEngine
Ведение журнала консоли
JavaScript, выполняемый внутри Qt WebEngine, может использовать API консоли Chrome, чтобы записывать информацию в консоль. Сообщения об этих записях передаются в средства ведения журналов Qt внутри js категории ведения журнала. Однако по умолчанию выводятся только сообщения об ошибках и критических ошибках. Чтобы изменить это, необходимо либо настроить собственные правила для js категории, либо предоставить собственные обработчики сообщений, переопределяя QWebEnginePage::javaScriptConsoleMessage() или подключившись к WebEngineView::javaScriptConsoleMessage().
Все сообщения также можно просмотреть через инструменты разработчика Qt WebEngine.
Инструменты разработчика Qt WebEngine
Модуль Qt WebEngine предоставляет инструменты разработчика веб-приложений, которые упрощают проверку и отладку проблем с макетом и производительностью любого веб-контента.
Доступ к инструментам разработчика осуществляется как к локальной веб-странице с помощью браузера на основе Chromium или Qt WebEngine, например, браузера Chrome.
Чтобы активировать инструменты разработчика, запустите приложение, использующее Qt WebEngine, с аргументами командной строки:
--remote-debugging-port=<port_number>
Где <port_number> относится к порту локальной сети. Затем к инструментам разработчика веб-приложений можно получить доступ, запустив браузер по адресу http://localhost:<port_number>.
В качестве альтернативы можно установить переменную среды QTWEBENGINE_REMOTE_DEBUGGING. Она может быть установлена либо только как порт, работающий аналогично --remote-debugging-port, либо с указанием адреса хоста и порта. Последний вариант позволяет управлять тем, на каком сетевом интерфейсе экспортировать интерфейс, что позволяет получить доступ к инструментам разработчика с удалённого устройства.
Для подробного объяснения возможностей инструментов разработчика см. страницу Chrome DevTools.
Использование аргументов командной строки
При отладке можно использовать следующие аргументы командной строки для предоставления ввода для отчётов об ошибках:
-
--disable-gpuотключает аппаратное ускорение GPU. Это полезно при диагностике проблем с OpenGL. -
--disable-loggingотключает ведение журнала консоли, что может быть полезно для отладочных сборок. -
--enable-logging --log-level=0включает ведение журнала консоли и устанавливает уровень ведения журнала в 0, что означает, что в журнале записываются сообщения с уровнем критичностиinfoи выше. Это значение по умолчанию для отладочных сборок. Другие возможные уровни ведения журнала:1для предупреждений,2для ошибок и3для критических ошибок. -
--no-sandboxотключает песочницу для процессов рендеринга и плагинов. Имейте в виду, что отключение песочницы может представлять собой угрозу безопасности. -
--single-processвыполняет процессы рендеринга и плагинов в том же процессе, что и браузер. Это полезно для получения стеков вызовов для сбоев рендеринга.
В качестве альтернативы можно установить переменную среды QTWEBENGINE_CHROMIUM_FLAGS. Например, следующее значение можно установить для отключения ведения журнала при отладке приложения под названием mybrowser:
QTWEBENGINE_CHROMIUM_FLAGS="--disable-logging" mybrowser
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qtwebengine-debugging.html