이 페이지에서

Qt Quick 프로젝트 디버깅

JavaScript 함수를 디버깅하고, JavaScript 표현식을 실행하여 UI 상태에 대한 정보를 얻고, QML 속성 및 JavaScript 변수를 검사하고, 런타임에 일시적으로 값을 변경할 수 있습니다.

Qt Quick 프로젝트를 디버깅하는 방법의 예는 튜토리얼: Qt Quick 디버깅을 참조하세요.

QML 디버깅 설정하기

Qt Quick 프로젝트에 대한 디버깅을 설정하는 프로세스는 프로젝트 유형에 따라 다릅니다: Qt Quick UI Prototype 또는 Qt Quick Application와 Qt 버전에 따라 다릅니다.

Qt Quick UI 프로젝트 디버깅하기

Qt Quick UI 프로젝트(.qmlproject)를 디버깅하려면 Run Settings > Debugger Settings > QML debugger 에서 Automatic 또는 Enabled 을 선택합니다.

실행 설정의 디버거 설정 섹션

Qt Quick 애플리케이션 디버깅하기

Qt Quick 애플리케이션을 디버깅하려면:

  1. QML 디버깅을 지원하는 빌드 구성을 생성하려면 Projects > Build Settings 으로 이동합니다.
  2. QML debugging and profiling 에서 Enable 을 선택합니다.

    CMake 프로젝트의 빌드 설정

    참고: 디버깅을 하려면 TCP 포트에서 소켓을 열어야 하므로 보안 위험이 있습니다. 인터넷에 있는 모든 사람이 디버깅 중인 애플리케이션에 연결하여 자바스크립트 함수를 실행할 수 있습니다. 따라서 해당 포트가 방화벽으로 적절히 보호되고 있는지 확인해야 합니다.

  3. Run Settings > Debugger settings > QML debugger 에서 Automatic 또는 Enabled 를 선택하여 실행 중인 애플리케이션에 대한 QML 디버깅을 활성화합니다.

    애플리케이션의 C++ 및 QML 부분을 동시에 디버깅하려면 C++ debugger 에서 Automatic 또는 Enabled 을 선택합니다.

  4. Build 로 이동하여 Rebuild Project 을 선택하여 프로젝트를 정리하고 다시 빌드합니다.
  5. 기기에서 애플리케이션을 디버깅하려면 디버깅을 시작하기 전에 Qt 라이브러리가 기기에 설치되어 있는지 확인하고 해당 기기에 맞는 키트를 선택합니다.

참고: 디버깅에 필요한 qmltooling 플러그인은 Qt Creator 및 Qt를 설치하는 동안 자동으로 설치됩니다. QML 애플리케이션을 디버깅하려는 경우 삭제하지 마세요.

기본값 사용

환경설정 > Build & Run > Default Build Properties 에서 QML 디버깅을 전역적으로 활성화 또는 비활성화할 수 있습니다.

빌드 및 실행 환경설정의 기본 빌드 속성 탭

QML debugging 필드의 값에 따라 새 빌드 구성을 만들 때 수행되는 작업이 결정됩니다. EnableDisable 값은 생성하는 빌드 구성 유형에 관계없이 새 빌드 구성에 대한 QML 디버깅을 해당 값으로 명시적으로 설정합니다.

Use Project Default 는 빌드 구성 유형에 따라 값이 달라집니다: Debug, Profile, 또는 Release. CMake 또는 qmake를 빌드 시스템으로 사용하는 경우 디버그 및 프로파일 빌드 구성에는 QML 디버깅이 활성화됩니다. 그러나 디버깅 기능은 애플리케이션을 취약하게 만들기 때문에 릴리스 빌드 구성에는 QML 디버깅이 포함되지 않습니다.

Projects > Build Settings > QML debugging and profilingDefault 옵션은 이미 구성된 기존 CMake 빌드 디렉터리를 그대로 유지합니다. 또한 기존 빌드를 강제 변경 없이 Qt Creator 으로 가져올 수 있으므로 예를 들어 프로젝트를 완전히 다시 빌드할 필요가 없습니다. 나중에 Qt Creator 외부에서 빌드 구성을 변경하더라도 원하는 대로 유지됩니다.

환경설정 > Build & Run > Default Build Properties 의 전역 설정과 빌드 구성 간의 상호 작용에 몇 가지 알려진 문제가 있습니다. 예를 들어 qmake의 경우 전역 설정은 키트를 활성화할 때 자동으로 생성되는 빌드 구성에만 영향을 줍니다. 또한 CMake는 전역 설정을 무시합니다.

QML 디버깅 시작하기

애플리케이션을 시작하려면 Debug > Start Debugging > Start Debugging of Startup Project 를 선택하거나 F5 를 선택합니다. 애플리케이션이 실행되기 시작하면 평소와 같이 동작하고 수행됩니다. 그런 다음 다음 작업을 수행할 수 있습니다:

  • JavaScript 함수 디버그
  • JavaScript 표현식을 실행하여 애플리케이션의 상태에 대한 정보를 얻습니다.
  • QML 속성 및 JavaScript 변수를 검사하고 런타임에 일시적으로 변경하기

이미 실행 중인 애플리케이션 디버깅하기:

  1. 적절한 구성 매개변수를 사용하여 애플리케이션을 빌드합니다( Qt Creator 을 사용하여 애플리케이션을 빌드하는 경우 자동으로 올바른 구성을 사용합니다):
    • CMake를 사용하는 경우, target_compile_definitions 명령은 CMakeLists.txt 파일에 정의됩니다: target_compile_definitions(myapp PRIVATE QT_QML_DEBUG)

      여기서 myapp은 디버깅할 애플리케이션입니다.

    • qmake를 사용하는 경우 .pro 파일에서 CONFIG 속성에 다음 값이 정의됩니다: CONFIG += qml_debug
  2. 다음 인수를 사용하여 애플리케이션을 시작합니다:

    -qmljsdebugger=port:<port>[,host:<ip address>][,block]

    여기서 port (필수)는 디버깅 포트를 지정하고, ip address (선택)은 애플리케이션이 실행 중인 호스트의 IP 주소를 지정하며, block (선택)은 디버그 클라이언트가 서버에 연결될 때까지 애플리케이션이 실행되지 않도록 합니다. 이렇게 하면 처음부터 디버깅이 가능합니다.

    참고: 중단점 설정은 애플리케이션이 블록 모드로 시작된 경우에만 가능합니다.

  3. Debug > Start Debugging > Attach to QML Port 로 이동합니다.

    디버깅할 애플리케이션이 실행 중인 디바이스에 대해 구성된 키트를 선택합니다. 사용할 포트 번호는 애플리케이션이 시작될 때 표준 출력에 표시됩니다.

JavaScript 함수 디버깅하기

Qt Creator Debug 모드를 사용하여 디버깅하는 동안 애플리케이션의 상태를 검사할 수 있습니다. 다음과 같은 방법으로 디버거와 상호 작용할 수 있습니다:

항목 검사

애플리케이션이 실행되는 동안 Locals 보기를 사용하여 QML 항목 구조를 탐색할 수 있습니다.

로컬 보기의 QML 항목 트리

디버거와 상호 작용하는 동안 애플리케이션을 계속 표시하려면 Debug > Show Application on Top 을 선택합니다.

다음과 같은 방법으로 Locals 보기에서 QML 항목을 볼 수 있습니다:

  • 개체 트리에서 항목을 확장합니다.
  • 코드 편집기에서 항목을 선택합니다.
  • Debug > Select 으로 이동하여 선택 모드를 활성화한 다음 실행 중인 애플리케이션에서 항목을 선택합니다.

소스를 편집하지 않고 속성 값을 일시적으로 변경하려면 해당 항목을 두 번 클릭하고 새 값을 입력합니다. 실행 중인 애플리케이션에서 결과를 볼 수 있습니다.

사용자 인터페이스 검사

복잡한 애플리케이션을 디버깅할 때 코드에서 항목이 정의된 위치로 이동할 수 있습니다.

선택 모드에서는 실행 중인 애플리케이션에서 항목을 선택하여 코드에서 해당 항목의 정의로 이동할 수 있습니다. 선택한 항목의 속성은 Locals 보기에 표시됩니다.

실행 중인 애플리케이션에서 항목 계층 구조를 볼 수도 있습니다:

실행 중인 애플리케이션에서 항목을 두 번 클릭하면 커서 위치에서 항목 스택을 순환할 수 있습니다.

선택 모드에서 전환하려면 Select 메뉴 항목을 토글합니다.

Qt QML Viewer 에서 실행 중인 애플리케이션을 앞쪽으로 이동하려면 Debug > Show Application on Top 을 선택합니다.

JavaScript 표현식 실행하기

애플리케이션이 중단점에 의해 중단된 경우 QML Debugger Console 을 사용하여 현재 컨텍스트에서 자바스크립트 표현식을 실행할 수 있습니다. 이를 열려면 View > Output > QML Debugger Console 을 선택합니다.

QML 디버거 콘솔

소스를 편집하지 않고도 속성 값을 일시적으로 변경하고 실행 중인 애플리케이션에서 결과를 볼 수 있습니다. 코드에서 속성 값을 영구적으로 변경할 수도 있습니다.

런타임에 QML 변경 사항 적용하기

QML Debugger Console 또는 Locals 또는 Expression 보기에서 속성 값을 변경하면 실행 중인 애플리케이션에서는 즉시 업데이트되지만 소스 코드에서는 업데이트되지 않습니다.

방법: 디버그, 디버깅, 디버거, 디버거키트도참조하세요 .

Copyright © The Qt Company Ltd. and other contributors. 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.