식 평가
'Locals' 뷰에 표시되지 않는 전역 데이터에 액세스하거나 산술 표현식 또는 함수 호출의 값을 계산하려면 ' Expressions ' 뷰의 표현식 평가기를 사용하십시오.
예를 들어, 소스 파일에서 ` static int staticVar = 42; `를 정의한 다음 ` staticVar `를 평가된 표현식으로 추가하면, 디버거가 해당 소스 파일에서 중지되었을 때 뷰에 42가 표시됩니다.
또한 표현식 평가기를 사용하여 로컬 변수 트리(locals tree)에 깊게 중첩된 항목으로 빠르게 이동할 수도 있습니다.

식 평가기 추가
식 평가기를 추가하려면 코드 편집기에서 식을 Expressions 뷰로 드래그하십시오.
다음 방법도 사용할 수 있습니다.
- Expressions 또는 Locals 뷰에서 더블 클릭합니다.
- 컨텍스트 메뉴에서 ‘ Add New Expression Evaluator ’을 선택합니다.
' New Evaluated Expression ' 대화 상자에 표현식을 입력합니다:

평가된 표현식 집합은 세션에 저장됩니다.
현재 프레임이 변경될 때마다 표현식 평가기가 다시 평가됩니다. 표현식에 사용된 함수는 부수 효과가 있더라도 매번 호출됩니다.
참고: 표현식평가에는 시간이 오래 걸리므로, 사용 후에는 표현식 평가기를 제거하십시오.
JavaScript 표현식
QML 디버거는 JavaScript 표현식을 평가할 수 있습니다.
C 및 C++ 표현식
CDB, GDB 및 LLDB는 간단한 값과 포인터로 구성된 산술 표현식과 같은 간단한 C 및 C++ 표현식의 평가를 지원합니다.
백엔드 및 구체적인 위치에 따라 일부 함수 호출을 평가할 수 있습니다. 이 점에서 CDB는 가장 제한이 많은 백엔드입니다.
함수 호출
함수는 디버깥 대상 실행 파일이나 해당 실행 파일이 사용하는 라이브러리에 실제로 컴파일되어 있는 경우에만 호출할 수 있습니다. 표준 컨테이너의 대부분의 operator[] 구현과 같은 인라인 함수는 일반적으로 사용할 수 없습니다.
참고: 식에 함수 호출이 포함되어있으면 , 애플리케이션 상태의 손상이나 애플리케이션의 권한을 이용하여 임의의 작업을 수행하는 등 어떤 일이든 발생할 수 있습니다.
범위 구문
GDB나 LLDB를 백엔드로 사용할 때, 특수한 범위 구문을 사용하여 하나의 표현식으로 여러 값을 표시할 수 있습니다. foo[a..b] 형식의 하위 표현식은 개별적으로 평가되는 일련의 표현식 foo[a], ..., foo[b] 으로 분할됩니다.
복합 변수
struct 또는 class 유형의 복합 변수를 확장하여 해당 멤버를 표시할 수 있습니다. 변수의 값과 유형도 함께 확인할 수 있으므로, 객체 데이터의 저수준 레이아웃을 조사하고 탐색할 수 있습니다.
최적화된 빌드
GDB와 LLDB, 그리고 이에 따라 Qt Creator 의 디버거도 Linux 및 macOS의 최적화된 빌드에서 작동합니다. 최적화로 인해 명령어 순서가 재조정되거나 일부 지역 변수가 제거될 수 있으며, 이로 인해 Locals 및 Expressions 뷰에 예상치 못한 데이터가 표시될 수 있습니다.
GCC
GCC에서 제공하는 디버그 정보에는 변수가 초기화된 시점에 대한 충분한 정보가 포함되어 있지 않습니다. 따라서 Qt Creator 는 지역 변수의 내용이 실제 데이터인지 초기 노이즈인지 구분할 수 없습니다. QObject 가 초기화되지 않은 것으로 보이면, 그 값은 not in scope 로 보고됩니다. 그러나 모든 초기화되지 않은 객체가 그런 것으로 인식되는 것은 아닙니다.
식(Expressions) 보기 작업
Expressions 뷰를 마우스 오른쪽 버튼으로 클릭하여 다음 작업을 선택합니다:
- 식 평가기 추가 및 제거
- 값 표시 형식 변경
- 뷰 내용 펼치기 및 접기
- 뷰 내용 또는 표현식 값을 클립보드에 복사
- 편집기에서 뷰 내용 열기
- 메모리 편집기 열기
- 데이터 중단점 설정
- 디버깅 헬퍼 사용
- 디버깅 시 뷰에서 툴팁 표시 및 숨기기
- 포인터의 참조 해제 자동 수행
- 클래스 및 구조체의 멤버를 알파벳순으로 정렬
- 표시에 동적 객체 유형 사용
- 디버거 환경 설정 지정
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.