QQmlDebuggingEnabler Struct
QQml 디버깅 인에이블러 클래스는 디버깅 또는 프로파일링을 활성화하는 메서드를 제공합니다. 더 보기...
| Header: | #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 엔진의 시작을 중단할 수 있습니다.
| Constant | 값 | 설명 |
|---|---|---|
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 엔진에 대해 디버깅을 활성화합니다. 디버그 커넥터는 hostName 에서 port 을 수신 대기하고 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.