Debugger Triage

버그 증상에 맞춰 디버거 기능을 고른다

디버거의 핵심은 멈추고, 보고, 흐름을 좁히는 것이다. 어떤 단서를 확인해야 하는지 알면 브레이크포인트와 조사식을 훨씬 적게 쓴다.

1

값이 예상과 다르다

Step Over와 조사식으로 값이 처음 어긋나는 줄을 찾는다.

Watch · Locals
2

흐름이 이상하다

함수 안으로 들어가거나 빠져나오며 호출 순서와 조건 분기를 확인한다.

Step Into · Step Out
3

크래시가 난다

멈춘 위치에서 호출 스택을 거슬러 올라가 최초 원인 후보를 좁힌다.

Call Stack · Memory
4

특정 값에서만 깨진다

반복문 전체를 멈추지 말고 조건부 브레이크포인트로 필요한 순간만 본다.

Conditional Breakpoint
5

값이 몰래 바뀐다

데이터 브레이크포인트로 특정 주소나 변수 변경 지점에서 바로 멈춘다.

Data Breakpoint
6

스레드가 멈춘다

스레드 목록과 각 호출 스택을 비교해 lock 대기와 교착 후보를 찾는다.

Threads · Stack

재현 조건

입력, 빌드 설정, 실행 순서를 고정한다.

멈출 위치

증상 직전 또는 의심 함수 입구에 지점을 둔다.

상태 확인

변수, 스택, 메모리, 스레드를 필요한 만큼만 본다.

수정 검증

같은 재현 조건으로 다시 실행해 원인이 사라졌는지 본다.