위키득계정 ↗
기술

Valgrind

Valgrind기술
주요 분야
디버깅과 프로파일링
기반 방식
동적 바이너리 계측
대표 검사 도구
Memcheck
대표 비용 분석
Callgrind와 Cachegrind
Valgrind는 프로그램 실행을 계측해 오류와 성능 특성을 분석하는 도구 체계다. 동적 바이너리 계측을 바탕으로 메모리와 스레드 문제의 검사 및 실행 비용 분석을 위한 여러 도구를 제공한다.

실행 파일에 적용하는 계측

프로그램의 바이너리를 실행하면서 분석에 필요한 계측을 적용한다. 응용을 수정하거나 다시 컴파일 및 링크하지 않고 사용하는 방식이다. 소스가 없는 프로그램도 분석할 수 있으며 시스템 라이브러리에서 수행되는 동작도 관측 범위에 포함한다.

목적에 따라 고르는 도구

메모리 관리 오류 검사에는 Memcheck를 이용하고 호출 관계의 비용 분석에는 Callgrind를 사용할 수 있다. 캐시 관련 프로파일과 힙 사용량 및 스레드 오류를 다루는 도구도 포함한다. 공통 계측 기반 위에서 분석 목적에 맞는 도구를 선택한다.

상세 관측과 실행 비용

동적 계측은 상세한 정보를 제공하지만 프로그램의 실행 속도에도 영향을 준다. 어떤 도구를 사용하고 어떤 작업을 분석하는지에 따라 부담은 달라진다. 오류를 재현하고 병목을 조사하는 분석 실행과 일반적인 실행 환경의 성능을 구분해 해석할 필요가 있다.

관련 문서

Memcheck / Callgrind / AddressSanitizer / GDB / 디버깅 / 소프트웨어 테스트