Qt Creator에서 JavaScript 디버깅

콘솔로 인쇄

AppStudio 앱을 디버깅할 때는 기본적으로 QML 코드의 console.log 메시징을 사용합니다. 이러한 메시지는 Qt Creator 콘솔에 나타나며 모든 플랫폼에서 동일하기 때문입니다. Qt 키트를 설치하지 않아도 이 방법을 사용할 수 있으며 AppStudio만 있으면 됩니다.

Qt Creator에서 앱을 실행하려면 도구 > 외부 > AppStudio 메뉴에서 실행을 클릭합니다.키보드에서 Alt+Shift+R을 누르거나 Qt Creator 창의 왼쪽 하단에 있는 실행 버튼을 클릭해도 됩니다.

Qt Creator 디버그 모드

AppStudio 버전 4.0과 함께 번들로 제공되는 Qt Creator 버전에서는 Qt Creator 디버깅 도구에 즉시 접근할 수 있습니다. 앱을 디버그 모드로 열려면 Qt Creator에서 F5 키를 누르거나 Qt Creator 창의 왼쪽 하단에 있는 시작 프로젝트 디버깅 시작 버튼을 클릭하세요.

Qt Creator에서 디버깅 도구를 사용하는 방법에 대한 자세한 내용은 Qt 설명서에서 디버거와 상호작용을 참고하세요.

비고:

Qt 설명서에는 C++ 디버깅에 대한 정보가 포함되어 있지만 해당 언어를 사용하려면 Qt SDK 라이선스(AppStudio에서는 제공되지 않음)가 있어야 합니다.

중단점

Qt Creator에서 중단점을 사용하면 특정 코드 라인에 도달한 경우 앱을 중단하여 직접 제어할 수 있습니다. 그런 다음 앱 상태를 점검하고 라인별로 또는 연속적으로 계속 실행할 수 있습니다.

다음과 같은 방법으로 앱에 중단점을 삽입할 수 있습니다.

  • 중단점을 삽입할 라인에서 텍스트 포인터를 사용하여 F9(macOS의 경우 F8) 키를 누릅니다.
  • 라인 번호 왼쪽에 있는 공백을 클릭합니다.
  • 중단점 뷰의 빈 부분을 더블 클릭하고 중단점 추가 창이 나타나면 라인 번호를 입력합니다.
  • 중단점 뷰에서 중단점 추가를 선택하고 중단점 추가 창이 나타나면 라인 번호를 입력합니다.

이제 앱은 중단점이 설정된 위치에서 중지합니다. Qt Creator의 디버거에서는 앱 다시 시작, 앱 중지, 다른 코드 라인으로 건너뛸 수 있는 옵션이 제공됩니다.

중단점 편집 창을 열려면 중단점 뷰에서 중단점을 더블 클릭하거나 코드 뷰에서 중단점을 마우스 오른쪽 버튼으로 클릭한 다음 중단점 편집을 클릭합니다. 해당 창에서는 다양한 유형의 중단점을 설정할 수 있으며 앱이 중단점에서 중지되기 전의 조건, 앱 중지 전에 중단점이 무시되는 횟수, 중단점에 도달한 경우 자동으로 전달되는 명령 등을 설정할 수 있습니다.

중단점을 이동하려면 중단점을 선택한 다음 원하는 위치로 드래그합니다. 중단점을 삭제하려면 F9(macOS의 경우 F8) 키를 다시 누르거나 중단점 아이콘을 클릭하거나 중단점을 마우스 오른쪽 버튼으로 클릭한 다음 선택한 중단점 삭제 또는 모든 중단점 삭제를 선택합니다.

중단점에 대한 자세한 내용은 Qt 설명서의 중단점 설정을 참고하세요.

QML 프로파일러

JavaScript로 인해 앱이 예상대로 작동되지 않는 예기치 않은 오류가 발생할 수 있을 뿐 아니라 QML 앱의 성능도 저하될 수 있습니다. 예를 들어 너무 많은 JavaScript를 단시간에 실행하면 지연이 발생하거나 프레임 속도가 떨어질 수 있습니다. QML 프로파일러 도구를 사용하면 사용 중인 JavaScript 함수, 메모리 사용량, 입력 이벤트 등 데이터를 모니터링하여 성능 저하의 원인을 파악할 수 있습니다.

QML 프로파일러를 활성화하려면 먼저 앱에서 Qt Creator가 실행되고 있지 않음을 확인해야 합니다. 그런 다음 앱의 프로젝트 뷰가 열려 있는 상태에서 분석 > QML 프로파일러를 선택합니다. 그러면 Qt Creator에 QML 프로파일러 섹션이 열린 상태에서 앱이 열립니다. 프로파일링하려는 앱 작업을 수행한 다음 QML 프로파일러 섹션에서 중지를 클릭합니다. QML 프로파일러 섹션에서 앱 동작에 대한 씬 그래프가 제공됩니다. 또한 코드 뷰에는 앱이 코드의 각 부분을 실행하는 데 사용한 시간의 백분율 값이 표시됩니다.

QML 프로파일러에 대한 자세한 내용은 Qt 설명서의 QML 응용프로그램 프로파일링을 참고하세요.