Skip to content

pdb

Python Debugger ( pdb )

코드 실행 및 흐름 제어

명령어 설명
b Breakpoint 설정: 특정 라인, 파일, 함수에 중단점을 설정.
예: b 12, b file.py:34, b func_name
tbreak Temporary Breakpoint 설정: 한 번 멈춘 뒤 삭제되는 임시 브레이크포인트.
cl Breakpoint 삭제: 특정 브레이크포인트 삭제.
예: cl 1
c Continue 실행: 다음 중단점까지 실행.
s Step 실행: 현재 라인을 실행하고 함수 내부로 진입.
n Next 실행: 현재 라인을 실행하고 다음 라인으로 이동.
r Return 실행: 현재 함수의 끝까지 실행하고 반환 후 멈춤.
j Jump 실행: 특정 라인으로 실행 위치를 강제로 변경.
예: j 45
q Quit 종료: 디버깅 종료 및 프로그램 종료.

상태 확인

명령어 설명
l List 코드: 현재 실행 위치를 포함한 코드 주변 출력.
예: l, l 10,20
w Where: 현재 실행 위치와 콜 스택(스택 트레이스) 출력.
p Print: 변수나 표현식 값을 출력.
예: p var_name, p x + y
pp Pretty Print: 값을 보기 좋게 출력.
args Arguments 출력: 현재 함수의 인자값을 출력.
dir() 객체 메서드 및 속성 나열: 현재 스코프의 객체 메서드와 속성 리스트.

변수 관리

명령어 설명
display 변수 값 지속 출력: 특정 변수나 표현식의 값을 자동으로 출력.
예: display x
undisplay Display 해제: 설정된 자동 출력 해제.
예: undisplay 1
locals 로컬 변수 출력: 현재 스코프의 로컬 변수를 출력.
globals 글로벌 변수 출력: 글로벌 변수를 출력.

Breakpoints 관리

명령어 설명
b Breakpoint 설정: 특정 라인, 함수에 설정.
tbreak Temporary Breakpoint 설정: 한 번 실행 후 삭제.
cl Breakpoint 삭제: 특정 브레이크포인트 삭제.
예: cl 1
disable Breakpoint 비활성화: 특정 중단점 비활성화.
예: disable 1
enable Breakpoint 활성화: 비활성화된 중단점 활성화.
예: enable 1
condition 조건부 Breakpoint 설정: 조건이 만족될 때만 멈춤.
예: condition 1 x > 5

콜 스택 관리

명령어 설명
w Where: 현재 위치와 콜 스택 출력.
up 스택 프레임 위로 이동: 상위 함수 호출로 이동.
down 스택 프레임 아래로 이동: 하위 함수 호출로 이동.

코드 실행

명령어 설명
! Python 표현식 실행: Python 코드를 즉시 실행.
예: !x = 5, !print(x)
run 프로그램 재실행: 디버깅 중 재시작.

명령어 히스토리 및 관리

명령어 설명
h Help: 특정 명령어에 대한 도움말 제공.
예: h b
commands Breakpoint에서 실행할 명령어 설정: 특정 중단점에서 실행할 명령 설정.
예: commands 1
alias Alias 정의: 명령어 별칭 설정.
unalias Alias 해제: 설정된 명령어 별칭 해제.

디버깅 로그 및 설정

명령어 설명
debug 디버깅 실행: 특정 명령어를 디버깅 모드에서 실행.
run 프로그램 재실행: 디버깅을 중단하고 프로그램을 다시 시작.

기타 유용한 팁

  • 조건부 중단점 사용: 특정 조건에서만 멈추도록 설정.
b 42, x > 10  # 라인 42에서 x > 10일 때 멈춤
  • 디스플레이 사용: 특정 변수의 값을 계속 모니터링.
display my_var
  • 스택 추적: 디버깅 중 함수 호출 계층을 탐색.
up     # 상위 스택으로 이동
down   # 하위 스택으로 이동

주요 커맨드 활용 워크플로우

  1. 중단점 설정:
b 10           # 라인 10에서 멈춤
b myfile.py:15 # myfile.py의 라인 15에서 멈춤
  1. 프로그램 실행 및 탐색:
c              # 프로그램 실행
n              # 다음 라인으로 이동
s              # 현재 함수로 들어가기
  1. 상태 및 변수 확인:
p my_var       # 변수 값 출력
l              # 코드 확인
w              # 현재 위치 확인
  1. 프로그램 종료:
q              # 디버깅 종료

위 목록은 pdb 디버깅을 효과적으로 사용할 수 있는 모든 명령어입니다. 필요에 따라 활용해보세요! 😊