시작은 미약하였으나 , 그 끝은 창대하리라

[파이썬 디버거] import pdb;pdb.set_trace() 본문

인공지능/딥러닝 및 파이토치 기타 정리

[파이썬 디버거] import pdb;pdb.set_trace()

애플파ol 2023. 12. 27. 17:40

용도: visual studio 로 c언어를 작성해본적이 있다면 빨간점을 클릭하면 그 부분에 대해서 자세히 들어가며 디버깅을 할 수 있다.

 

사용 : Visual studio code 의 ipynb 확장자로 코드를 작성후 디버깅하고 싶은 부분에  import pdb;pdb.set_trace() 를 추가하면 새로운 창이 나온다.  그 줄을 기준으로 이전의 변수, 값 들은 다 할당을 받은 상태임. visual studio 의 디버깅 기능과 동일하다 보면 됨.

 

사용법 : 창이 나오면 n (next), q(quit), s(step) 등의 명령어를 통해 진행할 수 있다. 

n를 사용하면 다음줄로 넘어가고, s로 하면 그 단계에서 있는 내부 함수등으로 들어가고 q를 하면 종료 된다. 이것외에도 명령어가 있는데 공식 문서를 참고하길.

 

좋은 이유 : 필요한 정보를 눈으로 확인하고 싶을때 print()를 다 찍어보거나 그러기에는 번거로움이 발생한다. (import pdb; pdb.set_trace() 를 쓰다보면 번거로웠구나를 느끼게 됨)  그러한 번거로움을 줄 일 수 있고 원하는 정보를 편하게 바로바로 확인이 가능하다.  

 

예시 : 아래와 같이 사용하면 됨.

def example_function():
    result = 0
    import pdb;pdb.set_trace()
    for i in range(5):
        result += i
        
    return result

# 함수 호출
example_function()

코드를 실행하면 아래와 같이 ipdb 라고 뜨면서 위에 명령어를 입력창이 뜬다. 원하는 명령어 입력하면 됨.

예시 코드 실행 화면

 

명령어 참고: https://docs.python.org/ko/3.7/library/pdb.html

 

pdb — 파이썬 디버거 — Python 3.7.17 문서

pdb — 파이썬 디버거 소스 코드: Lib/pdb.py pdb 모듈은 파이썬 프로그램을 위한 대화형 소스 코드 디버거를 정의합니다. 소스 라인 단계의 중단점(breakpoint) 및 단계 실행(single stepping) 설정, 스택 프

docs.python.org

 

Comments