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