C++ · DEBUG

디버거로 원인 좁히는 과정

디버깅은 코드를 무작정 훑는 일이 아니라 재현, 중단점, 상태 관찰, 가설 검증을 반복해 문제 범위를 줄이는 과정입니다.

디버깅 흐름

debug
reproduce문제가 나는 입력과 조건을 고정합니다.
breakpoint의심 지점에 중단점을 둡니다.
inspect state변수 값, 포인터, 컨테이너 상태를 확인합니다.
step한 줄씩 실행하며 값이 바뀌는 순간을 봅니다.
fix & verify수정 뒤 같은 시나리오로 재검증합니다.
재현중단점관찰단계 실행검증

관찰 대상

tools
call stack어떤 경로로 현재 함수에 도착했는지 봅니다.
watch중요 변수의 변화를 계속 추적합니다.
conditional break특정 값일 때만 멈춰 반복 디버깅을 줄입니다.
sanitizer메모리 오류는 ASan 같은 도구와 함께 보면 좋습니다.