QQmlDebuggingEnabler Struct
Die Klasse QQmlDebuggingEnabler bietet Methoden zur Aktivierung von Debugging oder Profiling. Mehr...
| Kopfzeile: | #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()) |
Detaillierte Beschreibung
Normalerweise wird QML-Debugging und -Profiling durch die Übergabe von QT_ENABLE_QML_DEBUG über CMake oder CONFIG+=qml_debug über qmake beim Erstellen Ihrer Anwendung aktiviert. Zur Laufzeit analysiert die Anwendung im Allgemeinen alle -qmljsdebugger Kommandozeilenargumente, um das Debugging oder die Profilerstellung tatsächlich zu starten.
Sie können diese Aufgaben stattdessen manuell mit den Methoden dieser Klasse erledigen.
Dokumentation der Mitgliedstypen
enum QQmlDebuggingEnabler::StartMode
Definiert das Startverhalten des Debug-Connectors. Sie können den Start von QML-Engines unterbrechen, während sich ein Debug-Client verbindet, um Haltepunkte im Startcode zu setzen oder ein Profil zu erstellen.
| Konstante | Wert | Beschreibung |
|---|---|---|
QQmlDebuggingEnabler::DoNotWaitForClient | 0 | Führt alle QML-Engines wie gewohnt aus, während sich die Debug-Dienste verbinden. |
QQmlDebuggingEnabler::WaitForClient | 1 | Wenn eine QML-Engine startet, während sich die Debug-Dienste verbinden, unterbrechen Sie sie, bis sie fertig sind. |
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 wurden. 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, wenn mode WaitForClient ist. Wenn mode nicht angegeben ist, wird nicht blockiert. Es kann immer nur ein Debug-Connector gleichzeitig gestartet werden. Ein Debug-Connector kann bereits gestartet worden sein, wenn das Kommandozeilenargument -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. Rückgabe Liste der Plugin-Schlüssel der Standard-Debugger-Dienste.
[static] void QQmlDebuggingEnabler::enableDebugging(bool printWarning)
Aktivieren Sie das Debugging oder die Profilerstellung. Wenn printWarning true ist, wird die folgende Warnung auf stderr ausgegeben:
QML debugging is enabled. Only use this in a safe environment.
Diese Methode wird automatisch beim Start aufgerufen, wenn QT_ENABLE_QML_DEBUG oder CONFIG+=qml_debug zur Erstellungszeit übergeben wird.
Diese Methode muss auf die eine oder andere Weise aufgerufen werden, bevor ein Debug-Connector irgendeiner Art gestartet wird. Andernfalls wird der Konnektor den Start verweigern.
Siehe auch startTcpDebugServer(), connectToLocalDebugger(), und startDebugConnector().
[static] QStringList QQmlDebuggingEnabler::inspectorServices()
Ruft die Plugin-Schlüssel der standardmäßig bereitgestellten Inspektordienste ab. Die Inspektordienste ermöglichen es einem Debug-Client, ein visuelles Inspektorwerkzeug für Qt Quick zu verwenden. Gibt die Liste der Plugin-Schlüssel der Standard-Inspektordienste zurück.
[static] QStringList QQmlDebuggingEnabler::nativeDebuggerServices()
Ruft die Plugin-Schlüssel der Debug-Dienste ab, die mit einem nativen Debugger verwendet werden sollen. Der native Debugger kommuniziert mit diesen Diensten, indem er den Speicher der Anwendung direkt liest und schreibt. Gibt die Liste der Plugin-Schlüssel der Debugging-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 von verschiedenen QML- und JavaScript-Konstrukten sowie dem QtQuick SceneGraph benötigte Zeit zu verfolgen. Rückgabe Liste der Plugin-Schlüssel der Standard-Profiler-Dienste.
[static] void QQmlDebuggingEnabler::setServices(const QStringList &services)
Schränkt die vom Debug-Konnektor verfügbaren Dienste ein. Der Konnektor durchsucht Plugins im Unterverzeichnis "qmltooling" des Standard-Pluginpfads. Wenn diese Funktion nicht aufgerufen wird, bevor der Debug-Konnektor aktiviert wird, sind alle auf diese Weise gefundenen Dienste für jeden Client verfügbar. Wenn diese Funktion aufgerufen wird, sind nur die Dienste mit den in services angegebenen Plugin-Schlüsseln verfügbar.
Verwenden Sie diese Methode, um Debugger- und Inspektordienste bei der Profilerstellung zu deaktivieren, um eine bessere Leistung und realistischere Profile zu erhalten. Der Debugger-Dienst versetzt jede JavaScript-Engine, mit der er sich verbindet, in den interpretierten Modus und deaktiviert 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 durch pluginName angegebenes Debug-Connector-Plugin wird geladen und unter Verwendung der angegebenen configuration gestartet. Die unterstützten Konfigurationseinträge und ihre Semantik hängen von dem geladenen Plugin ab. Es kann immer nur ein Debug-Connector zur gleichen Zeit gestartet werden. Ein Debug-Connector kann bereits gestartet worden sein, wenn das Kommandozeilenargument -qmljsdebugger= angegeben wurde. Diese Methode gibt true zurück, wenn ein neuer Debug-Connector erfolgreich gestartet wurde, oder 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 lauscht auf port unter hostName und blockiert die QML-Engine, bis er eine Verbindung erhält, wenn mode WaitForClient ist. Wenn mode nicht angegeben ist, blockiert er nicht und wenn hostName nicht angegeben ist, lauscht er auf allen verfügbaren Schnittstellen. Sie können jeweils nur einen Debug-Connector starten. Ein Debug-Connector kann bereits gestartet worden sein, wenn das Befehlszeilenargument -qmljsdebugger= angegeben wurde. Diese Methode gibt true zurück, wenn ein neuer Debug-Connector erfolgreich gestartet wurde, oder andernfalls false.
© 2025 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.