PuDB 이용하여 cli에서 python 디버깅하기

파이썬 디버깅을 위해 구긍링하던 중 stackoveflow에서 쓸만한 python debugger를 하나 찾았습니다. 바로 PuDB python 모듈입니다. 이 모듈은 파이썬 코드를 쉽게 디버깅하기 위해 만들어진 모듈입니다.

오늘은 이 PuDB 모듈을 사용하여 python 코드에 대해 디버깅하는 방법에 대해 작성해봅니다.

What is PuDB

pudb는 console 기반의 python 디버거입니다. 전체적인 느낌은 MS-DOS를 많이 따라가고 코드를 보면서 디버깅이 가능합니다. 단순해보이지만 많은 기능을 담고 있습니다.

그리고 CLI 기반 디버거로 간단한 스크립트를 디버깅하는데 있어서는 가장 편리한 것 같습니다. 참고로 원격 디버깅도 지원한다고 합니다.

Installation

pip 패키지로 설치할 수 있습니다.

pip install pudb

또는 github에서 직접 다운받아 사용하셔도 됩니다.

git clone http://git.tiker.net/trees/pudb.git

Debugging

실행은 python 의 -m 옵션으로 설치된 pudb를 로드하고, 대상 파이썬 파일을 지정해주면 디버깅 모드로 열리며 python 코드를 보면서 메모리 값과 변수값을 추적할 수 있습니다.

python -m pudb.run test.py

또한 pudb라는 명령을 별개로 지원하기도 합니다.

pudb my-script.py

이후 gdb와 동일한 커맨드로 코드 라인을 넘어가면 값을 추척하고 디버깅할 수 있습니다.

  • c: Continue
  • n: Next
  • s: Step
  • B: Break points
  • S: Stack
  • V: Variables
  • C: Codes
  • Ctrl-v: Insert a newline
  • Ctrl-n/p: Browse command history
  • Up/Down arrow: Select history
  • TAB: Tab completion

Reference

  • https://stackoverflow.com/questions/1623039/python-debugging-tips
  • https://pypi.python.org/pypi/pudb
  • https://github.com/inducer/pudb