QQmlDebuggingEnabler Struct
La classe QQmlDebuggingEnabler fournit des méthodes permettant d'activer le débogage ou le profilage. En savoir plus...
| En-tête : | #include <QQmlDebuggingEnabler> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Qml) target_link_libraries(mytarget PRIVATE Qt6::Qml) |
| qmake : | QT += qml |
Types publics
| enum | StartMode { DoNotWaitForClient, WaitForClient } |
Membres publics statiques
| 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()) |
Description détaillée
En général, le débogage et le profilage QML sont activés en passant l’option ` QT_ENABLE_QML_DEBUG ` via CMake ou ` CONFIG+=qml_debug ` via qmake lors de la compilation de votre application. Au moment de l’exécution, l’application analyse généralement les arguments de ligne de commande de type ` -qmljsdebugger ` pour lancer effectivement le débogage ou le profilage.
Vous pouvez également gérer ces tâches manuellement à l’aide des méthodes de cette classe.
Documentation sur les types de membres
enum QQmlDebuggingEnabler::StartMode
Définit le comportement de démarrage du connecteur de débogage. Vous pouvez interrompre le démarrage des moteurs QML pendant qu’un client de débogage se connecte, afin de définir des points d’arrêt ou de profiler le code de démarrage.
| Constante | Valeur | Description |
|---|---|---|
QQmlDebuggingEnabler::DoNotWaitForClient | 0 | Exécutez tous les moteurs QML comme d'habitude pendant que les services de débogage se connectent. |
QQmlDebuggingEnabler::WaitForClient | 1 | Si un moteur QML démarre pendant que les services de débogage s'connectent, l'interrompt jusqu'à ce que ceux-ci aient terminé. |
Documentation des fonctions membres
[static] bool QQmlDebuggingEnabler::connectToLocalDebugger(const QString &socketFileName, QQmlDebuggingEnabler::StartMode mode = DoNotWaitForClient)
Active le débogage pour les moteurs QML créés après l'appel de cette fonction. Le connecteur de débogage se connectera à un débogueur attendant sur un socket local à l'socketFileName indiquée et bloquera le moteur QML jusqu’à ce que la connexion soit établie si mode est WaitForClient. Si mode n’est pas spécifié, il n’y aura pas de blocage. Vous ne pouvez démarrer qu’un seul connecteur de débogage à la fois. Un connecteur de débogage peut déjà avoir été lancé si l'argument de ligne de commande -qmljsdebugger= a été fourni. Cette méthode renvoie true si un nouveau connecteur de débogage a été lancé avec succès, ou false dans le cas contraire.
[static] QStringList QQmlDebuggingEnabler::debuggerServices()
Récupère les clés de plugin des services de débogage fournis par défaut. Les services de débogage permettent à un client de débogage d'utiliser un débogueur Qml/JavaScript afin de définir des points d'arrêt, de suspendre l'exécution, d'évaluer des expressions et d'effectuer d'autres tâches de débogage similaires. Renvoie une liste des clés de plugin des services de débogage par défaut.
[static] void QQmlDebuggingEnabler::enableDebugging(bool printWarning)
Activer le débogage ou le profilage. Si printWarning vaut true, afficher l'avertissement suivant sur stderr :
QML debugging is enabled. Only use this in a safe environment.Cette méthode est automatiquement appelée au démarrage si QT_ENABLE_QML_DEBUG ou CONFIG+=qml_debug est passé lors de la compilation.
Cette méthode doit être appelée d'une manière ou d'une autre avant de démarrer un connecteur de débogage, quel qu'il soit. Sinon, le connecteur refusera de démarrer.
Voir également startTcpDebugServer(), connectToLocalDebugger() et startDebugConnector().
[static] QStringList QQmlDebuggingEnabler::inspectorServices()
Récupère les clés de plugin des services d'inspection fournis par défaut. Les services d'inspection permettent à un client de débogage d'utiliser un outil d'inspection visuelle pour Qt Quick. Renvoie une liste des clés de plugin des services d'inspection par défaut.
[static] QStringList QQmlDebuggingEnabler::nativeDebuggerServices()
Récupère les clés de plugin des services de débogage conçus pour être utilisés avec un débogueur natif. Le débogueur natif communiquera avec ces services en lisant et en écrivant directement dans la mémoire de l'application. Renvoie une liste des clés de plugin des services de débogage conçus pour être utilisés avec un débogueur natif.
[static] QStringList QQmlDebuggingEnabler::profilerServices()
Récupère les noms des services de profilage fournis par défaut. Les services de profilage permettent à un client de débogage d’utiliser un outil de profilage et de suivre le temps d’exécution de diverses constructions QML et JavaScript, ainsi que du SceneGraph d’ QtQuick. Renvoie une liste des clés de plug-in des services de profilage par défaut.
[static] void QQmlDebuggingEnabler::setServices(const QStringList &services)
Limite les services disponibles via le connecteur de débogage. Le connecteur analysera les plugins situés dans le sous-répertoire « qmltooling » du chemin d’accès par défaut aux plugins. Si cette fonction n’est pas appelée avant l’activation du connecteur de débogage, tous les services détectés de cette manière seront accessibles à n’importe quel client. Si cette fonction est appelée, seuls les services dont les clés de plugin sont indiquées dans services seront disponibles.
Utilisez cette méthode pour désactiver les services du débogueur et de l’inspecteur lors du profilage afin d’obtenir de meilleures performances et des profils plus réalistes. Le service du débogueur mettra tout moteur JavaScript auquel il se connecte en mode interprété, désactivant ainsi le compilateur JIT.
Voir également debuggerServices(), profilerServices() et inspectorServices().
[static] bool QQmlDebuggingEnabler::startDebugConnector(const QString &pluginName, const QVariantHash &configuration = QVariantHash())
Active le débogage pour les moteurs QML créés après l’appel de cette fonction. Un plugin de connecteur de débogage spécifié par ` pluginName ` sera chargé et lancé à l’aide de l’ configuration` indiquée. Les entrées de configuration prises en charge et leur sémantique dépendent du plugin chargé. Vous ne pouvez lancer qu’un seul connecteur de débogage à la fois. Un connecteur de débogage peut déjà avoir été lancé si l'argument de ligne de commande -qmljsdebugger= a été fourni. Cette méthode renvoie true si un nouveau connecteur de débogage a été lancé avec succès, ou false dans le cas contraire.
[static] bool QQmlDebuggingEnabler::startTcpDebugServer(int port, QQmlDebuggingEnabler::StartMode mode = DoNotWaitForClient, const QString &hostName = QString())
Active le débogage pour les moteurs QML créés après l'appel de cette fonction. Le connecteur de débogage écoutera sur l'port à l'adresse hostName et bloquera le moteur QML jusqu'à ce qu'il reçoive une connexion si mode est défini sur WaitForClient. Si mode n'est pas spécifié, il ne bloquera pas le moteur, et si hostName n'est pas spécifié, il écoutera sur toutes les interfaces disponibles. Vous ne pouvez démarrer qu'un seul connecteur de débogage à la fois. Un connecteur de débogage a peut-être déjà été lancé si l’argument de ligne de commande -qmljsdebugger= a été fourni. Cette méthode renvoie true si un nouveau connecteur de débogage a été lancé avec succès, ou false dans le cas contraire.
© 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.