Отладка и профилирование 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запускает процессы рендеринга и плагинов в том же процессе, что и браузер. Это полезно для получения стеков вызовов для сбоев рендеринга. -
--enable-features=NetworkServiceInProcessзапускает сетевое взаимодействие в основном процессе. Это может помочь в управлении брандмауэром, так как для белого списка потребуется только исполняемый файл приложения, а не QtWebEngineProcess. Однако это означает потерю безопасности песочницы сетевого сервиса.
В качестве альтернативы можно установить переменную среды QTWEBENGINE_CHROMIUM_FLAGS. Например, следующее значение можно установить, чтобы отключить ведение журнала во время отладки приложения с именем mybrowser:
QTWEBENGINE_CHROMIUM_FLAGS="--disable-logging" mybrowser
QTWEBENGINE_CHROMIUM_FLAGS также можно установить, используя {qputenv} внутри приложения, если это вызов перед QtWebEngine::initialize().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qtwebengine-debugging.html