2. Debugging
디버깅이 숙달되면, 버그를 잡는 스킬을 매우 향상시켜줍니다. 많은 파이썬 입문자들은 파이썬디버거(pdb
)가 얼마나 중요한 지 잘 모르고 넘어갑니다. 여기서 몇 가지 중요한 명령어를 알려드리고자 합니다. 공식문서에서 더 많은 것을 배울 수 있을 것입니다.
커맨드라인에서에서 실행하기
파이썬 디버거를 통해 파이썬 스크립트를 실행할 수 있습니다. 아래와 같이 사용할 수 있습니다.
$ python -m pdb my_script.py
위 코드는 디버거가 첫 번째 실행문을 발견하면 실행을 정지시킵니다. 스크립트가 짧을 때 매우 도움됩니다. 여러분들은 한 줄 한 줄 실행하면서 변수들을 확인할 수 있습니다.
스크립트 내에서 실행하기
정지지점을 스크립트 안에서 걸어서 특정한 지점에서의 상태와 변수들을 확인할 수 있습니다. 아래의 예시는 pdb.set_trace()
메소드를 활용한 것입니다.
import pdb
def make_bread():
pdb.set_trace()
return "시간이 없어!"
print(make_bread())
위 스크립트를 저장하고 실행해보세요. 실행하자마자 디버거가 뜨는 것을 볼 수 있을 것입니다. 이제 디버거의 명령어들을 배워보겠습니다.
c
: 계속 실행시킵니다.w
: 실행되고 있는 현재의 줄의 컨텍스트를 확인하빈다.a
: 현재 함수의 전달인자 리스트를 출력합니다.s
: 현재 줄을 실행하고 특정시점에 중단합니다.n
: 함수가 끝나거나 반환될 때까지 실행합니다.
s
tep는 호출된 함수 안에서 정지하는 반면, n
ext는 호출된 함수를 끝까지 쭉 돌고, 현재 함수의 끝나고 바로 다음 줄에서 정지합니다.
몇개의 명령어들만 소개했습니다. pdb
는 정말 유용한 함수인 post mortem도 지원합니다. 꼭 공식문서를 확인해보고 파이썬 디버거에 대해 더 배워보시기를 추천드립니다.