programming2 MIN READ

[Python] pdb와 breakpoint()

[Python] pdb와 breakpoint()

1. pdb란?

  • Python Debugger의 약자로, 파이썬 기본 내장 디버거입니다.
  • 코드 실행 중 원하는 지점에서 멈추고, 변수 확인, 코드 step-by-step 실행 등이 가능합니다.
  • 파이썬 표준 라이브러리라서 추가 설치 필요 없음 (pip install 불필요).

2. breakpoint()pdb.set_trace()

  • Python 3.7 이상: breakpoint() 권장
    • 내부적으로 pdb.set_trace()를 호출합니다.
  • Python 3.6 이하: pdb.set_trace() 직접 사용해야 함. 예시:
def add(a, b):
    result = a + b
    breakpoint()  # 실행 중 여기서 멈춤
    return result

print(add(3, 4))



3. 실행 방법

터미널에서 그냥 실행하면 됩니다:

python myscript.py


breakpoint() 지점에서 실행이 멈추고, **디버그 모드(pdb 프롬프트)**가 뜹니다.

4. 주요 명령어 정리 (pdb prompt에서)

</tr> </tr> </tr> </tr> </tr> </table> --- ### 5. 환경 변수 활용 - `PYTHONBREAKPOINT` 환경변수로 `breakpoint()` 동작을 변경 가능: ```bash export PYTHONBREAKPOINT=pdb.set_trace ``` - 다른 디버거(ex: ipdb)로 바꿀 수도 있음: ```bash export PYTHONBREAKPOINT=ipdb.set_trace ``` --- ✅ 정리: - Python 3.7 이상 → `breakpoint()` 사용 권장 - 디버깅 기본 명령어: `n`, `s`, `c`, `p`, `q` - 설치 불필요 (내장 모듈) ---
명령어 설명
`n` (next) 현재 함수 내에서 한 줄씩 실행 (함수 호출은 건너뜀)
`s` (step) 함수 안으로 들어가며 실행
`c` (continue) 다음 breakpoint까지 계속 실행
`l` (list) 현재 위치 전후 코드 보기
`p <변수명>`</td> 변수 값 출력
`pp <변수명>`</td> 예쁘게 출력(pretty print)
`b `</td> 특정 라인에 breakpoint 설정
`b :`</td> 다른 파일 특정 라인에 breakpoint 설정
`cl `</td> 해당 breakpoint 제거
`q` (quit) 디버깅 종료