QQmlDebuggingEnabler Struct
QQmlDebuggingEnabler 클래스는 디버깅이나 프로파일링을 활성화하는 메서드를 제공합니다. 더 보기...
| 헤더: | #include <QQmlDebuggingEnabler> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Qml) target_link_libraries(mytarget PRIVATE Qt6::Qml) |
| qmake: | QT += qml |
공개 타입
| enum | StartMode { DoNotWaitForClient, WaitForClient } |
정적 공용 멤버
| 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()) |
상세 설명
일반적으로 애플리케이션을 빌드할 때 CMake를 통해 ` QT_ENABLE_QML_DEBUG `을 전달하거나 qmake를 통해 ` CONFIG+=qml_debug `을 전달함으로써 QML 디버깅 및 프로파일링을 활성화합니다. 실행 시, 애플리케이션은 일반적으로 ` -qmljsdebugger ` 명령줄 인수를 파싱하여 실제로 디버깅이나 프로파일링을 시작합니다.
대신 이 클래스의 메서드를 사용하여 이러한 작업을 수동으로 처리할 수도 있습니다.
멤버 유형 문서
enum QQmlDebuggingEnabler::StartMode
디버그 커넥터의 시작 동작을 정의합니다. 디버그 클라이언트가 연결되는 동안 QML 엔진의 시작을 중단하여, 시작 코드에 중단점을 설정하거나 프로파일링할 수 있습니다.
| 상수 | 값 | 설명 |
|---|---|---|
QQmlDebuggingEnabler::DoNotWaitForClient | 0 | 디버그 서비스가 연결되는 동안 모든 QML 엔진을 평소와 같이 실행합니다. |
QQmlDebuggingEnabler::WaitForClient | 1 | 디버그 서비스가 연결되는 동안 QML 엔진이 시작되면, 디버그 서비스 연결이 완료될 때까지 해당 엔진의 실행을 중단합니다. |
멤버 함수 문서
[static] bool QQmlDebuggingEnabler::connectToLocalDebugger(const QString &socketFileName, QQmlDebuggingEnabler::StartMode mode = DoNotWaitForClient)
이 함수를 호출한 후 생성된 QML 엔진에 대한 디버깅을 활성화합니다. 디버그 커넥터는 지정된 socketFileName 에서 로컬 소켓을 대기 중인 디버거에 연결하며, mode 가 WaitForClient 인 경우 연결이 설정될 때까지 QML 엔진을 차단합니다. mode 가 지정되지 않은 경우 차단되지 않습니다. 한 번에 하나의 디버그 커넥터만 시작할 수 있습니다. -qmljsdebugger= 명령줄 인수가 지정된 경우, 디버그 커넥터가 이미 시작되었을 수 있습니다. 이 메서드는 새로운 디버그 커넥터가 성공적으로 시작되면 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.
[static] QStringList QQmlDebuggingEnabler::debuggerServices()
기본적으로 제공되는 디버거 서비스의 플러그인 키를 가져옵니다. 디버거 서비스를 통해 디버그 클라이언트는 Qml/JavaScript 디버거를 사용하여 중단점을 설정하고, 실행을 일시 중지하며, 식을 평가하는 등 다양한 디버깅 작업을 수행할 수 있습니다. 기본 디버거 서비스의 플러그인 키 목록을 반환합니다.
[static] void QQmlDebuggingEnabler::enableDebugging(bool printWarning)
디버깅 또는 프로파일링을 활성화합니다. printWarning 가 true 인 경우, stderr에 다음 경고를 출력합니다:
QML debugging is enabled. Only use this in a safe environment.빌드 시점에 QT_ENABLE_QML_DEBUG 또는 CONFIG+=qml_debug 가 전달된 경우, 이 메서드는 시작 시 자동으로 호출됩니다.
어떤 종류의 디버그 커넥터든 시작하기 전에 이 메서드를 반드시 호출해야 합니다. 그렇지 않으면 커넥터가 시작되지 않습니다.
startTcpDebugServer(), connectToLocalDebugger(), startDebugConnector()도 참조하십시오 .
[static] QStringList QQmlDebuggingEnabler::inspectorServices()
기본으로 제공되는 인스펙터 서비스의 플러그인 키를 가져옵니다. 인스펙터 서비스를 통해 디버그 클라이언트는 Qt Quick 에서 시각적 인스펙터 도구를 사용할 수 있습니다. 기본 인스펙터 서비스의 플러그인 키 목록을 반환합니다.
[static] QStringList QQmlDebuggingEnabler::nativeDebuggerServices()
네이티브 디버거와 함께 사용하도록 설계된 디버그 서비스의 플러그인 키를 가져옵니다. 네이티브 디버거는 애플리케이션의 메모리를 직접 읽고 쓰면서 이러한 서비스와 통신합니다. 네이티브 디버거와 함께 사용하도록 설계된 디버그 서비스의 플러그인 키 목록을 반환합니다.
[static] QStringList QQmlDebuggingEnabler::profilerServices()
기본적으로 제공되는 프로파일러 서비스의 이름을 가져옵니다. 프로파일러 서비스를 통해 디버그 클라이언트는 프로파일러를 사용하여 다양한 QML 및 JavaScript 구문은 물론, QtQuick SceneGraph의 실행 시간을 추적할 수 있습니다. 기본 프로파일러 서비스의 플러그인 키 목록을 반환합니다.
[static] void QQmlDebuggingEnabler::setServices(const QStringList &services)
디버그 커넥터를 통해 사용할 수 있는 서비스를 제한합니다. 커넥터는 기본 플러그인 경로의 "qmltooling" 하위 디렉터리에 있는 플러그인을 스캔합니다. 디버그 커넥터가 활성화되기 전에 이 함수가 호출되지 않으면, 해당 방식으로 발견된 모든 서비스가 모든 클라이언트에서 사용 가능해집니다. 이 함수가 호출되면, services 에 지정된 플러그인 키를 가진 서비스만 사용 가능해집니다.
프로파일링 시 더 나은 성능과 보다 현실적인 프로파일을 얻기 위해 디버거 및 인스펙터 서비스를 비활성화하려면 이 메서드를 사용하십시오. 디버거 서비스는 연결된 모든 JavaScript 엔진을 해석 모드로 전환하여 JIT 컴파일러를 비활성화합니다.
debuggerServices(), profilerServices(), inspectorServices()도 참조하십시오 .
[static] bool QQmlDebuggingEnabler::startDebugConnector(const QString &pluginName, const QVariantHash &configuration = QVariantHash())
이 함수를 호출한 후 생성된 QML 엔진에 대한 디버깅을 활성화합니다. ` pluginName `로 지정된 디버그 커넥터 플러그인이 주어진 ` configuration`를 사용하여 로드되고 시작됩니다. 지원되는 구성 항목과 그 의미는 로드되는 플러그인에 따라 다릅니다. 한 번에 하나의 디버그 커넥터만 시작할 수 있습니다. -qmljsdebugger= 명령줄 인수가 지정된 경우, 디버그 커넥터가 이미 시작되었을 수 있습니다. 이 메서드는 새로운 디버그 커넥터가 성공적으로 시작된 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.
[static] bool QQmlDebuggingEnabler::startTcpDebugServer(int port, QQmlDebuggingEnabler::StartMode mode = DoNotWaitForClient, const QString &hostName = QString())
이 함수를 호출한 후 생성된 QML 엔진에 대한 디버깅을 활성화합니다. 디버그 커넥터는 port 에서 hostName 를 수신 대기하며, mode 가 WaitForClient 인 경우 연결을 수신할 때까지 QML 엔진을 차단합니다. mode 가 지정되지 않으면 차단되지 않으며, hostName 가 지정되지 않으면 사용 가능한 모든 인터페이스에서 수신 대기합니다. 한 번에 하나의 디버그 커넥터만 시작할 수 있습니다. -qmljsdebugger= 명령줄 인수가 지정된 경우, 디버그 커넥터가 이미 실행 중일 수 있습니다. 이 메서드는 새로운 디버그 커넥터가 성공적으로 시작되면 true 을 반환하고, 그렇지 않은 경우 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.