[파이썬] pdb의 이력 기능 활용

pdb는 파이썬의 내장 디버깅 도구로, 코드를 디버깅하는 데 유용하게 사용됩니다. 이번 포스트에서는 pdb의 이력 기능을 활용하여 디버깅 작업을 더욱 효율적으로 수행하는 방법에 대해 알아보겠습니다.

pdb란 무엇인가요?

pdb는 “Python Debugger”의 약자로, 코드의 실행 중에 중단점을 설정하고 해당 지점에서 코드를 단계별로 실행하며 변수의 값과 코드의 상태를 확인할 수 있는 디버깅 도구입니다. pdb를 사용하면 코드 내의 버그와 에러를 신속하게 찾고 해결할 수 있습니다.

pdb의 이력 기능 활용하기

pdb의 이력 기능은 현재 실행 중인 코드의 명령 이력을 저장하고, 다시 실행할 수 있는 장점이 있습니다. 디버깅 과정에서 이력 기능을 활용하면 반복적인 작업을 최소화하고, 디버깅 시간을 단축할 수 있습니다.

다음은 pdb의 이력 기능을 활용하는 간단한 예제 코드입니다:

import pdb

def example_function():
    a = 5
    b = 10
    c = a + b

    pdb.set_trace()  # 중단점 설정

    d = c * 2
    print(d)

example_function()

위 코드에서 pdb.set_trace() 함수를 사용하여 중단점을 설정합니다. 중단점에서 pdb 프롬프트가 나타나며, 이후에 코드를 단계별로 실행하거나 변수의 값 확인 등을 할 수 있습니다.

주의: 다음 코드 라인을 실행하기 전에 pdb.set_trace()를 삽입하십시오.

pdb의 명령어

pdb의 명령어를 사용하여 이력 기능을 활용할 수 있습니다. 다음은 주요한 몇 가지 명령어입니다:

pdb의 이력 기능 사용 예시

중단점에서 이력 기능을 활용하여 코드를 다시 실행하는 예시를 살펴보겠습니다. 위에서 정의한 example_function()을 다시 실행하는 동안 중단점에서 pdb 기능을 사용해보겠습니다.

> /Users/username/example.py(7)example_function()
-> d = c * 2
(Pdb) l
  2     def example_function():
  3         a = 5
  4         b = 10
  5         c = a + b
  6
  7  ->     pdb.set_trace()  # 중단점 설정
  8
  9         d = c * 2
 10         print(d)
 11
(Pdb) p c
15
(Pdb) n
> /Users/username/example.py(9)example_function()
-> d = c * 2
(Pdb) p d
30
(Pdb) c
30

위 예시에서 l 명령어로 현재 코드 위치와 주변 코드를 출력하고, p 명령어로 변수 cd의 값을 확인하였습니다. 이후 c 명령어로 디버깅 모드를 종료하고, 코드를 계속 실행하여 결과를 확인할 수 있었습니다.


위 예제에서는 pdb의 이력 기능을 간단히 살펴보았습니다. 디버깅 과정에서 게임이나 반복적인 동작이 있는 경우, 이력 기능을 통해 중단된 부분부터 반복 실행하고 확인할 수 있습니다. pdb는 구체적인 디버깅 작업을 돕는 강력한 도구이므로, 프로젝트 개발 과정에서 활용할 수 있도록 익숙해지는 것이 좋습니다.