위키득계정 ↗
기술

디버거

디버거기술
영문명
Debugger
주요 기능
중단점, 단계 실행, 상태 조사
관찰 대상
변수와 호출 스택, 실행 위치 등
관련 작업
오류 재현과 원인 분석
디버거는 프로그램의 실행을 제어하고 내부 상태를 조사해 오류의 원인을 찾도록 돕는 도구다. 중단점과 단계 실행, 변수와 호출 스택 확인 등이 대표적인 기능이다. 도구가 오류의 의도된 정답을 자동으로 아는 것은 아니다.

멈출 위치를 정하기

중단점은 관심 있는 코드 위치나 조건에서 실행을 멈추게 할 수 있다. 전체 실행을 처음부터 한 줄씩 따라가는 대신 문제와 관련된 상태를 살필 수 있다. 어떤 조건에서 오류가 나타나는지 재현하는 과정이 먼저 필요할 수 있다.

현재 값과 호출 경로

변수의 값과 함수 호출 스택을 확인하면 현재 위치에 도달한 맥락을 조사할 수 있다. 다만 보이는 값은 관찰 시점의 상태다. 그 값을 만든 과거의 모든 변화가 자동으로 기록되어 있는 것은 아니다.

관찰이 실행에 미치는 영향

실행을 멈추거나 값을 평가하는 행위는 시간과 상태에 영향을 줄 수 있다. 동시에 여러 작업이 진행되는 프로그램에서는 관찰 조건이 바뀌며 증상이 달라지기도 한다. 디버거에서 보인 한 번의 실행을 모든 실행과 동일하게 생각해서는 안 된다.

시험과 성능 분석의 차이

테스트는 주어진 조건에서 기대한 결과가 나오는지 검사하고, 프로파일링은 자원 사용과 실행 특성을 측정한다. 디버거는 내부 상태와 흐름을 조사하는 역할에 초점을 둔다. 서로 보완하는 도구이지 같은 작업의 다른 이름은 아니다.

관련 문서

소프트웨어 / 예외 처리 / 프로그래밍 언어 / 프로파일링 (컴퓨터 프로그래밍) / 스택