PDB를 이용한 파이썬 스크립트 디버깅

PDB 사용법 및 Debugger 옵션에 관한 내용입니다.

PDB 사용 방법(Usage)

  • n: 현재 라인 실행(step next)
  • s: 현재 라인의 함수 안으로 이동(step in)
  • run: 현재 지점에서 계속 실행(다음 set_trace가 없으면 디버깅이 끝나는 셈)
> /usr/lib/python2.7/lib-tk/Tkconstants.py(70)<module>()
-> NORMAL='normal'
(Pdb) s
> /usr/lib/python2.7/lib-tk/Tkconstants.py(71)<module>()
-> DISABLED='disabled'
(Pdb) s
> /usr/lib/python2.7/lib-tk/Tkconstants.py(72)<module>()
-> ACTIVE='active'
(Pdb) n
> /usr/lib/python2.7/lib-tk/Tkconstants.py(74)<module>()
-> HIDDEN='hidden'
(Pdb) n
> /usr/lib/python2.7/lib-tk/Tkconstants.py(77)<module>()
-> CASCADE='cascade'
(Pdb) n
pdb sqlmap.py 
> ~~~/tool/sqlm/sqlmap.py(6)<module>()
-> """
(Pdb) 
import pdb
import test
pdb.run('test.start()')

위와 같이 임의로 만든 test를 import 하고, test내 start 메소드를 실행하는 것을 pdb.run을 통해 실행하여 pdb를 사용할 수도 있습니다.

> <string>(0)?()
(Pdb) continue
> <string>(1)?()
(Pdb) continue
NameError: 'test'
> <string>(1)?()
(Pdb)

Reference

https://docs.python.org/2/library/pdb.html