C++ · DEBUG
디버거로 원인 좁히는 과정
디버깅은 코드를 무작정 훑는 일이 아니라 재현, 중단점, 상태 관찰, 가설 검증을 반복해 문제 범위를 줄이는 과정입니다.
디버깅 흐름
debug
reproduce
문제가 나는 입력과 조건을 고정합니다.
breakpoint
의심 지점에 중단점을 둡니다.
inspect state
변수 값, 포인터, 컨테이너 상태를 확인합니다.
step
한 줄씩 실행하며 값이 바뀌는 순간을 봅니다.
fix & verify
수정 뒤 같은 시나리오로 재검증합니다.
재현
→
중단점
→
관찰
→
단계 실행
→
검증
관찰 대상
tools
call stack
어떤 경로로 현재 함수에 도착했는지 봅니다.
watch
중요 변수의 변화를 계속 추적합니다.
conditional break
특정 값일 때만 멈춰 반복 디버깅을 줄입니다.
sanitizer
메모리 오류는 ASan 같은 도구와 함께 보면 좋습니다.