Auf dieser Seite

QQmlDebuggingEnabler Struct

Die Klasse „QQmlDebuggingEnabler“ stellt Methoden zur Aktivierung der Fehlersuche oder der Profilerstellung bereit. Mehr...

Header: #include <QQmlDebuggingEnabler>
CMake: find_package(Qt6 REQUIRED COMPONENTS Qml)
target_link_libraries(mytarget PRIVATE Qt6::Qml)
qmake: QT += qml

Öffentliche Typen

enum StartMode { DoNotWaitForClient, WaitForClient }

Statische öffentliche Mitglieder

bool connectToLocalDebugger(const QString &socketFileName, QQmlDebuggingEnabler::StartMode mode = DoNotWaitForClient)
QStringList debuggerServices()
void enableDebugging(bool printWarning)
QStringList inspectorServices()
QStringList nativeDebuggerServices()
QStringList profilerServices()
void setServices(const QStringList &services)
bool startDebugConnector(const QString &pluginName, const QVariantHash &configuration = QVariantHash())
bool startTcpDebugServer(int port, QQmlDebuggingEnabler::StartMode mode = DoNotWaitForClient, const QString &hostName = QString())

Ausführliche Beschreibung

Normalerweise werden das Debuggen und Profiling von QML aktiviert, indem beim Erstellen Ihrer Anwendung über CMake „ QT_ENABLE_QML_DEBUG “ oder über qmake „ CONFIG+=qml_debug “ übergeben wird. Zur Laufzeit analysiert die Anwendung in der Regel alle Befehlszeilenargumente vom Typ „ -qmljsdebugger “, um das Debuggen oder Profiling tatsächlich zu starten.

Sie können diese Aufgaben stattdessen manuell übernehmen, indem Sie die Methoden dieser Klasse verwenden.

Dokumentation zu den Mitgliedstypen

enum QQmlDebuggingEnabler::StartMode

Legt das Startverhalten des Debug-Connectors fest. Sie können den Start der QML-Engines unterbrechen, während ein Debug-Client eine Verbindung herstellt, um Haltepunkte zu setzen oder den Startcode zu profilieren.

KonstanteWertBeschreibung
QQmlDebuggingEnabler::DoNotWaitForClient0Führen Sie alle QML-Engines wie gewohnt aus, während die Debug-Dienste eine Verbindung herstellen.
QQmlDebuggingEnabler::WaitForClient1Wenn eine QML-Engine startet, während die Debug-Dienste eine Verbindung herstellen, unterbrechen Sie sie, bis der Verbindungsaufbau abgeschlossen ist.

Dokumentation der Mitgliedsfunktionen

[static] bool QQmlDebuggingEnabler::connectToLocalDebugger(const QString &socketFileName, QQmlDebuggingEnabler::StartMode mode = DoNotWaitForClient)

Aktiviert das Debugging für QML-Engines, die nach dem Aufruf dieser Funktion erstellt werden. Der Debug-Connector stellt eine Verbindung zu einem Debugger her, der auf einem lokalen Socket unter der angegebenen Adresse socketFileName wartet, und blockiert die QML-Engine, bis die Verbindung hergestellt ist, sofern mode auf WaitForClient gesetzt ist. Wenn mode nicht angegeben ist, erfolgt keine Blockierung. Es kann jeweils nur ein Debug-Connector gestartet werden. Möglicherweise wurde bereits ein Debug-Connector gestartet, wenn das Befehlszeilenargument `-qmljsdebugger=` angegeben wurde. Diese Methode gibt ` true ` zurück, wenn ein neuer Debug-Connector erfolgreich gestartet wurde, andernfalls ` false `.

[static] QStringList QQmlDebuggingEnabler::debuggerServices()

Ruft die Plugin-Schlüssel der standardmäßig bereitgestellten Debugger-Dienste ab. Die Debugger-Dienste ermöglichen es einem Debug-Client, einen Qml/JavaScript-Debugger zu verwenden, um Haltepunkte zu setzen, die Ausführung anzuhalten, Ausdrücke auszuwerten und ähnliche Debugging-Aufgaben durchzuführen. Gibt eine Liste der Plugin-Schlüssel der standardmäßigen Debugger-Dienste zurück.

[static] void QQmlDebuggingEnabler::enableDebugging(bool printWarning)

Debugging oder Profiling aktivieren. Wenn printWarning der Wert true ist, wird die folgende Warnung auf stderr ausgegeben:

QML debugging is enabled. Only use this in a safe environment.

Diese Methode wird beim Start automatisch aufgerufen, wenn bei der Kompilierung QT_ENABLE_QML_DEBUG oder CONFIG+=qml_debug übergeben wird.

Diese Methode muss auf die eine oder andere Weise aufgerufen werden, bevor ein Debug-Konnektor jeglicher Art gestartet wird. Andernfalls weigert sich der Konnektor, zu starten.

Siehe auch startTcpDebugServer(), connectToLocalDebugger() und startDebugConnector().

[static] QStringList QQmlDebuggingEnabler::inspectorServices()

Ruft die Plugin-Schlüssel der standardmäßig bereitgestellten Inspektor-Dienste ab. Die Inspektor-Dienste ermöglichen es einem Debug-Client, ein visuelles Inspektor-Tool für Qt Quick zu nutzen. Gibt eine Liste der Plugin-Schlüssel der Standard-Inspektor-Dienste zurück.

[static] QStringList QQmlDebuggingEnabler::nativeDebuggerServices()

Ruft die Plugin-Schlüssel der Debug-Dienste ab, die für die Verwendung mit einem nativen Debugger vorgesehen sind. Der native Debugger kommuniziert mit diesen Diensten, indem er direkt aus dem Speicher der Anwendung liest und in diesen schreibt. Gibt eine Liste der Plugin-Schlüssel der Debug-Dienste zurück, die für die Verwendung mit einem nativen Debugger vorgesehen sind.

[static] QStringList QQmlDebuggingEnabler::profilerServices()

Ruft die Namen der standardmäßig bereitgestellten Profiler-Dienste ab. Die Profiler-Dienste ermöglichen es einem Debug-Client, einen Profiler zu verwenden und die Ausführungszeit verschiedener QML- und JavaScript-Konstrukte sowie des „ QtQuick “-SceneGraphs zu verfolgen. Gibt eine Liste der Plugin-Schlüssel der standardmäßigen Profiler-Dienste zurück.

[static] void QQmlDebuggingEnabler::setServices(const QStringList &services)

Schränkt die über den Debug-Connector verfügbaren Dienste ein. Der Connector durchsucht Plugins im Unterverzeichnis „qmltooling“ des Standard-Plugin-Pfads. Wird diese Funktion nicht aufgerufen, bevor der Debug-Connector aktiviert wird, stehen alle auf diese Weise gefundenen Dienste jedem Client zur Verfügung. Wird diese Funktion aufgerufen, stehen nur die Dienste mit den in services angegebenen Plugin-Schlüsseln zur Verfügung.

Verwenden Sie diese Methode, um Debugger- und Inspector-Dienste beim Profiling zu deaktivieren, um eine bessere Leistung und realistischere Profile zu erzielen. Der Debugger-Dienst versetzt jede JavaScript-Engine, mit der er sich verbindet, in den interpretierten Modus und deaktiviert dabei den JIT-Compiler.

Siehe auch debuggerServices(), profilerServices() und inspectorServices().

[static] bool QQmlDebuggingEnabler::startDebugConnector(const QString &pluginName, const QVariantHash &configuration = QVariantHash())

Aktiviert das Debugging für QML-Engines, die nach dem Aufruf dieser Funktion erstellt wurden. Ein über „ pluginName “ angegebenes Debug-Connector-Plugin wird geladen und unter Verwendung der angegebenen „ configuration “ gestartet. Die unterstützten Konfigurationseinträge und deren Bedeutung hängen vom geladenen Plugin ab. Es kann jeweils nur ein Debug-Connector gestartet werden. Möglicherweise wurde bereits ein Debug-Connector gestartet, wenn das Befehlszeilenargument `-qmljsdebugger=` angegeben wurde. Diese Methode gibt ` true ` zurück, wenn ein neuer Debug-Connector erfolgreich gestartet wurde, andernfalls ` false `.

[static] bool QQmlDebuggingEnabler::startTcpDebugServer(int port, QQmlDebuggingEnabler::StartMode mode = DoNotWaitForClient, const QString &hostName = QString())

Aktiviert das Debugging für QML-Engines, die nach dem Aufruf dieser Funktion erstellt wurden. Der Debug-Connector überwacht port unter hostName und blockiert die QML-Engine, bis er eine Verbindung erhält, sofern mode auf WaitForClient gesetzt ist. Ist mode nicht angegeben, erfolgt keine Blockierung, und ist hostName nicht angegeben, werden alle verfügbaren Schnittstellen überwacht. Es kann jeweils nur ein Debug-Connector gestartet werden. Möglicherweise wurde bereits ein Debug-Connector gestartet, wenn das Befehlszeilenargument -qmljsdebugger= angegeben wurde. Diese Methode gibt „ true “ zurück, wenn ein neuer Debug-Connector erfolgreich gestartet wurde, andernfalls „ false “.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.