Python 디버깅 빠르고 편하게 하기

배경

파이썬 코드를 디버깅 할 때 두가지 방법이 있다.

  1. IDE로 디버깅한다
  2. print()를 한다.

1번은 IDE에서 지원하는 디버거를 통해 아주 디테일한 내용까지 볼 수 있다는 장점이 있다. 하지만, CPython을 사용하는 경우 초반 로딩이 느릴 수 있으며, 또 원하지 않는 여러가지 정보까지 보여주기 떄문에 때로는 더 복잡할 수도 있다.

2번은 원하는 변수의 값을 바로 볼 수 있다는 점에서 아주 유용하다. 하지만 break point를 찍을 수 없기 때문에 프로그램이 계속 실행된다는 단점이 있고, 종종 데이터를 덮어씌운다던지 하는 치명적인 실수를 일으킬 수도 있다.

 


솔루션

print() 대신 import pdb; pdb.set_trace() 를 사용하자.

물론 명령어가 길어져서 귀찮아질 수도 있다. 하지만 1번과 2번의 장점을 그대로 가질 수 있는게 이 방법이다.

위 커맨드를 입력하고 코드를 실행하면, IDE의 로딩 없이 바로 코드를 원래 속도대로 실행할 수 있다.

그 후, breakpoint 셋팅 없이 우리가 입력한 코드까지 가서 멈춘다.

거기서 원하는 변수를 입력하면 print 해준다.

완벽해!