[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에서)
| 명령어 | 설명 | ||||||
| `n` (next) | 현재 함수 내에서 한 줄씩 실행 (함수 호출은 건너뜀) | ||||||
| `s` (step) | 함수 안으로 들어가며 실행 | ||||||
| `c` (continue) | 다음 breakpoint까지 계속 실행 | ||||||
| `l` (list) | 현재 위치 전후 코드 보기 | ||||||
| `p <변수명>`</td> | 변수 값 출력 | </tr>||||||
| `pp <변수명>`</td> | 예쁘게 출력(pretty print) | </tr>||||||
`b | 특정 라인에 breakpoint 설정 |
</tr>
`b | 다른 파일 특정 라인에 breakpoint 설정 |
</tr>
`cl | 해당 breakpoint 제거 |
</tr>
`q` (quit) |
디버깅 종료 |
|