표현식 평가하기
로컬 보기에 표시되지 않는 전역 데이터에 액세스하거나 산술 표현식 또는 함수 호출의 값을 계산하려면 Expressions 보기에서 표현식 평가기를 사용하세요.
예를 들어 소스 파일에 static int staticVar = 42; 을 정의한 다음 staticVar 을 평가된 표현식으로 추가하면 디버거가 소스 파일에서 멈출 때 보기에 42가 표시됩니다.
표현식 평가기를 로컬 트리에서 깊숙이 중첩된 항목에 대한 바로 가기로 사용할 수도 있습니다.

표현식 평가기 추가하기
표현식 평가기를 추가하려면 코드 편집기에서 표현식을 Expressions 보기로 드래그하세요.
다음과 같이 할 수도 있습니다:
- Expressions 또는 Locals 보기를 두 번 클릭합니다.
- 상황에 맞는 메뉴에서 Add New Expression Evaluator 을 선택합니다.
New Evaluated Expression 대화 상자에 표현식을 입력합니다:

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