멤체크로 메모리 누수 감지
Valgrind의 도구 제품군에 있는 Memcheck 도구를 사용하면 애플리케이션의 메모리 관리와 관련된 문제를 감지할 수 있습니다. 이 도구를 GDB 디버거와 함께 사용하세요. 문제가 감지되면 애플리케이션이 중단되고 디버깅할 수 있습니다.
참고: 멤체크는 Linux에서 로컬로 설치하여 실행할 수 있습니다. 모든 컴퓨터에서 원격 호스트 또는 장치에서 실행할 수 있습니다. Windows에서는 Heob 힙 옵저버를 사용하여 비슷한 결과를 얻을 수 있습니다.
Valgrind 도구를 다운로드하여 설치한 후 Qt Creator 에서 Memcheck를 사용할 수 있습니다.
애플리케이션에서 메모리 누수를 감지하려면
- Projects 모드로 이동하여 디버그 빌드 구성을 선택합니다.
- 모드 선택기에서 Debug > Memcheck 을 선택합니다.

을 선택하여 애플리케이션을 시작합니다.- 애플리케이션을 사용하여 분석합니다.
을 선택하여 Memory Issues 에서 분석 결과를 확인합니다.
메모리 문제 보기
애플리케이션이 실행되는 동안 멤체크는 다음을 수행합니다:
- 메모리의 모든 읽기 및 쓰기를 확인합니다.
- 메모리를 할당 또는 해제하거나 메모리 블록을 생성 또는 삭제하는 호출을 가로챕니다.
멤체크는 실행 중인 애플리케이션에 속하는 경우 문제를 카테고리로 나누어 표시합니다. Qt Creator 에서 결과를 확인할 수 있습니다. 기본적으로 다른 문제(예: 외부 라이브러리에서 발생한 문제)는 필터링됩니다.
한 줄을 선택하면 메모리 누수가 발생한 위치와 그 원인을 보여주는 스택 추적을 볼 수 있습니다.
데이터를 수집하는 대신
을 선택하여 XML 형식의 외부 로그 파일을 Memcheck 보기에 로드할 수 있습니다.
함수에 대한 자세한 정보를 보려면 마우스를 행 위로 이동합니다.
행 사이를 이동하려면
(Previous) 또는
(Next)를 선택합니다.
멤체크 사용에 대한 자세한 내용은 Valgrind 문서에서 멤체크 출력 해석하기를 참조하세요.
메모리 문제 필터링
결과를 필터링하려면
을 선택한 다음 보기에 표시할 문제 유형을 선택합니다:
- 확실하고 가능한 메모리 누수
- 초기화되지 않은 메모리 사용
- 에 대한 잘못된 호출
free() - 크기 및 정렬 오류
- 파일 설명자 문제
어떤 카테고리에도 속하지 않는 이슈를 표시하려면 Other 을 선택하세요.
외부 라이브러리의 이슈도 표시하려면 External errors 을 선택하세요.
방법도참조하세요 :분석, 프로파일링 기능 실행, 외부 애플리케이션에서 Valgrind 도구 실행, 프로젝트에 대한 Valgrind 설정 지정, 분석기, Valgrind Callgrind, Valgrind Memcheck, 코드 분석 등을 참조하세요.
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.