print는 단순한 버그에는 충분하지만 상태가 얽히면 추적문만 늘어. Python 내장 디버거인 pdb는 멈춘 프레임의 변수를 보고 식을 계산하며 줄과 호출 스택을 오가게 해. n은 다음 줄, s는 함수 안, c는 계속, p는 값, l은 소스, w는 스택, u/d는 프레임 이동, q는 종료야.
Python 3.7+의 breakpoint()가 기본 진입점이야. PYTHONBREAKPOINT로 ipdb 같은 다른 디버거를 고르거나 0으로 꺼. python -m pdb script.py로 처음부터 실행할 수도 있고, 예외 뒤 pdb.pm()으로 실패 프레임을 조사할 수도 있어.
멈춘 자리에서 값을 임시로 바꿔 통과시킨 건 수정이 아니야. 관찰로 가설을 세우고 소스를 고친 다음 같은 입력에서 재현이 사라졌는지 다시 확인해.