Valgrind Memcheck
Valgrind 환경 설정은 모든 프로젝트에 대해 전역적으로 설정하거나, 프로젝트별 실행 설정에서 프로젝트마다 개별적으로 설정할 수 있습니다.
Valgrind에 대한 전역 기본 설정을 지정하려면, ‘ Preferences ’ > ‘ Analyzer ’를 선택하십시오. ‘ Memcheck Memory Analysis Options ’에서 Memcheck 기본 설정을 지정하십시오.

Extra Memcheck arguments 에서 실행 파일을 실행하기 위한 추가 인수를 지정합니다.
스택 트레이스 길이 설정
스택 트레이스는 상당히 길어지고 혼란스러워질 수 있으므로, 아래에서 위로 읽으면 이해하는 데 도움이 될 수 있습니다. 스택 트레이스가 충분히 길지 않거나 너무 긴 경우, ‘ Preferences ’ > ‘ Analyzer ’를 선택하고 ‘ Backtrace frame count ’ 필드에서 스택 트레이스의 길이를 정의하십시오.
초기화되지 않은 메모리의 발생원 추적
Memcheck은 또한 초기화되지 않은 값의 사용 내역을 보고하며, 가장 흔히 “ Conditional jump or move depends on uninitialised value(s). ”라는 메시지와 함께 표시됩니다. 이러한 오류의 근본 원인을 파악하기 위해 Memcheck은 초기화되지 않은 메모리의 출처를 추적합니다. Memcheck의 실행 속도를 높이려면 “ Track origins of uninitialized memory ” 옵션을 해제하십시오.
요약 정보 보기
Memcheck은 클라이언트 애플리케이션이 종료될 때 메모리 누수를 검색합니다. 발생한 누수량을 확인하려면 ‘ Check for leaks on finish ’ 필드에서 ‘ Summary Only ’을 선택하십시오. 각 누수의 세부 정보도 함께 확인하려면 ‘ Full ’을 선택하십시오.
접근 가능한 블록 및 간접적으로 손실된 블록 표시
접근 가능한 블록은 포인터나 포인터 체인이 가리키는 블록으로, 애플리케이션이 종료되기 전에 해제되었을 가능성이 있는 블록입니다. 간접적으로 손실된 블록은 이를 가리키는 모든 블록이 이미 손실되었기 때문에 손실된 것으로 간주됩니다. 예를 들어, 손실된 루트 노드의 모든 자식 노드는 간접적으로 손실됩니다.
기본적으로 Memcheck은 접근 가능한 블록과 간접적으로 손실된 블록을 보고하지 않습니다. 이를 보고받으려면 ‘ Show reachable and indirectly lost blocks ’를 선택하십시오.
오류 억제
Memcheck은 OS에 기본으로 설치된 C 라이브러리 등 시스템 라이브러리에서 수많은 문제를 감지합니다. 이러한 문제는 쉽게 수정할 수 없으므로 오류 표시를 억제하는 것이 좋습니다. Valgrind는 시작 시 억제할 오류 목록을 읽어들입니다. 시스템 빌드 시 ` ./configure ` 스크립트에 의해 기본 억제 파일이 생성됩니다.
프로젝트의 일부에 수정할 수 없는 오류가 있고, 이에 대한 알림을 받고 싶지 않은 경우 직접 오류 억제 파일을 작성할 수 있습니다. ‘ MemCheck Memory Analysis ’ 대화 상자에서 ‘ Add ’를 선택하여 오류 억제 파일을 추가하십시오.
억제 파일 작성에 대한 자세한 내용은 Valgrind 문서의 ‘오류 억제(Suppressing Errors )’ 섹션을 참조하십시오.
또한 ‘Memcheck을 사용하여 메모리 누수 감지’, ‘함수 실행 프로파일링’, ‘외부 애플리케이션에서 Valgrind 도구 실행’, ‘프로젝트에 대한 Valgrind 설정 지정’ 및 ‘Valgrind Callgrind’ 항목도참조하십시오 .
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.