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.
| Konstante | Wert | Beschreibung |
|---|---|---|
QQmlDebuggingEnabler::DoNotWaitForClient | 0 | Führen Sie alle QML-Engines wie gewohnt aus, während die Debug-Dienste eine Verbindung herstellen. |
QQmlDebuggingEnabler::WaitForClient | 1 | Wenn 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.