이 페이지에서

기본 Qt 객체 검사하기

디버거의 가장 강력한 기능은 LocalsExpressions 뷰가 Qt의 기본 객체에 속하는 데이터를 표시한다는 것입니다. 예를 들어 QObject 의 경우 일부 비공개 데이터 구조에 대한 포인터 대신 자식, 신호 및 슬롯의 목록을 볼 수 있습니다.

마찬가지로 Qt Creator 의 디버거는 많은 포인터와 정수를 표시하는 대신 QHash 또는 QMap 의 내용을 질서정연하게 표시합니다. 또한 디버거는 QFileInfo 에 대한 액세스 데이터와 QVariant실제 내용을 표시합니다.

값 표시 형식 변경

Locals 또는 Expressions 보기의 컨텍스트 메뉴에서 Change Value Display Format 을 선택하여 값 표시 형식을 변경합니다. 사용 가능한 옵션은 현재 항목의 유형에 따라 다르며 디버깅 헬퍼에서 제공됩니다.

일반 C형 구조로 표시하려면 환경설정 > Debugger > Locals & Expressions 으로 이동한 다음 Use Debugging Helpers 을 선택 취소합니다.

디버거 환경 설정의 로컬 및 표현식 탭

이렇게 하면 여전히 Python 스크립트를 사용하지만 보다 기본적인 출력이 생성됩니다. 단일 개체 또는 특정 유형의 모든 개체에 대해 일반 표시를 강제하려면 Locals 또는 Expressions 보기의 컨텍스트 메뉴에서 Change Value Display Format > Raw 을 선택합니다.

일반적으로 QByteArraystd::string 과 같은 문자열형 데이터의 인코딩을 변경하거나 전체 편집기 창에 데이터를 표시할 수 있습니다.

QMap, QHash, std::map 와 같은 지도형 데이터의 경우 키에 Name 열을 사용하여 숫자나 짧은 문자열과 같이 키가 짧은 컨테이너를 간결하게 표시하는 압축 옵션을 선택할 수 있습니다. 예를 들어 QMap 의 모든 값을 확장하려면 Change Value Display Format > Compact 을 선택합니다.

문자열의 경우 Change Value Display Format > Separate Window 을 선택하면 뷰에서 단일 줄 항목이 아닌 텍스트 편집 내의 문자열 콘텐츠를 볼 수 있습니다. QPixmap 의 경우 코드를 단계별로 진행할 때 픽셀 단위로 생성되는 픽셀맵을 볼 수 있습니다.

변수 값 변경

LocalsExpressions 보기를 사용하여 애플리케이션이 중단된 경우 int, float, QStringstd::string 와 같은 간단한 데이터 유형의 변수 내용을 변경할 수 있습니다. 이렇게 하려면 Value 열을 선택하고 자리 바꾸기 편집기로 값을 수정한 다음 Enter를 선택합니다.

QVector 또는 std::vector 값의 전체 내용을 변경하려면 모든 값을 쉼표로 구분하여 기본 항목의 Value 열에 입력합니다. 단, Qt Creator 은 변수에 대한 메모리 재할당을 시도하지 않으므로 새 내용이 이전 메모리에 맞고 디버거가 값 변경을 지원하는 경우에만 변경 사항을 적용합니다.

신호-슬롯 연결

클래스의 인스턴스가 QObject 에서 파생된 경우, Qt의 신호 및 슬롯 메커니즘을 사용하여 이 객체의 슬롯에 연결된 다른 모든 객체를 찾을 수 있습니다. 환경설정 > Debugger > Locals & Expressions > Use Debugging Helpers 로 이동합니다.

Locals 보기에서 객체의 항목을 확장하고 슬롯 하위 항목에서 슬롯을 엽니다. 보기에 이 슬롯에 연결된 개체가 슬롯의 자식으로 표시됩니다. 마찬가지로 신호의 자식도 표시할 수 있습니다.

로우 레벨 데이터

데이터가 손상되어 Qt 객체를 디버깅할 수 없는 경우 디버깅 헬퍼를 꺼서 저수준 구조를 표시할 수 있습니다.

디버깅 헬퍼를 끄려면 환경설정 > Debugger > Locals & Expressions 에서 Use Debugging Helpers 을 선택 취소하세요.

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

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.