실행 파일에 적용하는 계측
프로그램의 바이너리를 실행하면서 분석에 필요한 계측을 적용한다. 응용을 수정하거나 다시 컴파일 및 링크하지 않고 사용하는 방식이다. 소스가 없는 프로그램도 분석할 수 있으며 시스템 라이브러리에서 수행되는 동작도 관측 범위에 포함한다.
목적에 따라 고르는 도구
메모리 관리 오류 검사에는 Memcheck를 이용하고 호출 관계의 비용 분석에는 Callgrind를 사용할 수 있다. 캐시 관련 프로파일과 힙 사용량 및 스레드 오류를 다루는 도구도 포함한다. 공통 계측 기반 위에서 분석 목적에 맞는 도구를 선택한다.
상세 관측과 실행 비용
동적 계측은 상세한 정보를 제공하지만 프로그램의 실행 속도에도 영향을 준다. 어떤 도구를 사용하고 어떤 작업을 분석하는지에 따라 부담은 달라진다. 오류를 재현하고 병목을 조사하는 분석 실행과 일반적인 실행 환경의 성능을 구분해 해석할 필요가 있다.
관련 문서
Memcheck / Callgrind / AddressSanitizer / GDB / 디버깅 / 소프트웨어 테스트