Отладка и профилирование 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для критических ошибок. -
--v=1увеличивает уровень регистрации за пределы возможностей--log-levelи включает регистрирование отладочных сообщений до уровня подробности1. Более высокое число увеличивает подробность, но может привести к большому количеству зарегистрированных сообщений. По умолчанию0(нет сообщений об отладке). -
--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.13/qtwebengine-debugging.html