728x90
반응형
python 코딩 중 특히나 머신러닝처럼 feature의 사이즈에 민감한 코드의 경우,
python debugger 즉 pdb가 큰 도움이 될 수 있다.
이 pdb 모듈을 사용하면 마치 eclipse나 visual studio, pycharm처럼 매 순간의 변수값을 알아낼수도 있고 직접 trace를 볼 수도 있다.
import pdb; pdb.set_trace()
상단의 코드를 디버깅이 필요한 부분에 넣고 바로 실행시키면, 코드 프로세스가 진행되다가 특정 브레이크 포인트에서 중단된 후, 아래와 같은 쉘로 커맨드를 입력받게끔 동작한다.
(Pdb)
이 쉘에다가 직접 변수명을 적음으로써, 실제 변수의 정의 또는 변수 값을 확인할 수도 있고 아래와 같은 커맨드로 디버깅을 수행할 수 있다. 대표적으로 많이 사용되는 커맨드만 적어보았다. 이 외에 다른 커맨드들은 상단의 다큐먼트에서 참고하면 추가 커맨드를 확인할 수 있다.
Pdb Command | 설명 | Description |
h, help | pdb 명령어 리스트 출력 | Print the list of available commands |
w, where | 코드 trace 출력 | Print a stack trace |
s, step | 다음 단계(함수 내부)로 진행 | Execute the current line, stop at the first possible occasion (either in a function that is called or on the next line in the current function). |
n, next | 다음 단계(문장) 수행 | Continue execution until the next line in the current function is reached or it returns. |
print($VAR_NAME) | 변수 값 화면에 표시 | Print the variable value. |
list | 소스 코드 중 현재 위치 표시 | List source code for the current file. |
c, cont, continue | 지속적으로 코드 실행, 다음 break point에서 멈추거나, 끝까지 실행 | Continue execution, only stop when a breakpoint is encountered. |
r, return | 현 함수의 리턴 직전까지 수행 | Continue execution until the current function returns. |
! $VAR_NAME = value | 변수에 값 재설정 | Reset the variable to new value |
728x90
반응형
'사소한 Tip . 오류 해결법 > python' 카테고리의 다른 글
[python] 인터넷 크롤링(지마켓 상품명, 가격) / Python Crawling product name, price from online shopping mall (0) | 2022.03.15 |
---|---|
[python/pytorch] Model GPU 메모리 사용량 체크 (0) | 2022.03.11 |
[python, layout-parser] pdf에서 정보 뽑기/ Extracting information from PDF file (0) | 2022.01.11 |
[python] File Copy, shutil filecopy (0) | 2022.01.06 |
[python]TypeError: 'module' object is not callable python (0) | 2020.11.18 |