디버깅은 프로그램 개발 과정에서 중요한 부분입니다. 버그를 찾고 해결하기 위해 코드를 실행하기 전에 어떤 문제가 발생하는지 확인하고 싶을 수 있습니다. Python에는 내장된 디버깅 도구인 pdb를 사용하여 디버그 세션을 실행하고 코드를 한 줄씩 실행할 수 있습니다.
이 포스트에서는 pdb 디버그 세션 중 코드를 실행하는 방법에 대해 알아보겠습니다.
PDB를 이용한 디버그 세션 시작하기
일단 디버그 세션을 시작하려면 다음 명령어를 코드의 원하는 위치에 추가하면 됩니다:
import pdb; pdb.set_trace()
위의 코드를 실행하면 해당 위치에 디버그 세션이 시작되고, 터미널 또는 콘솔 창에서 pdb 프롬프트로 들어갑니다.
PDB 디버그 세션 명령어
pdb 디버그 세션 중에 몇 가지 유용한 명령어를 사용할 수 있습니다:
- n(ext): 다음 줄로 코드 실행
- s(tep): 현재 줄에서 함수 호출로 이동 (함수 내부로 들어감)
- r(eturn): 현재 함수의 나머지 부분을 건너뛰고 반환
- c(ont(inue)): 다음 중단점까지 코드 실행
- b(reak) [filename:lineno]: 중단점 설정
- l(ist): 현재 코드 주변을 보여줌
디버깅 예시
def multiply(a, b):
result = a * b
return result
def divide(a, b):
result = None
try:
result = a / b
except ZeroDivisionError:
import pdb; pdb.set_trace()
print("Error: Division by zero")
return result
def main():
num1 = 10
num2 = 0
result = divide(num1, num2)
print(f"The result is: {result}")
if __name__ == "__main__":
main()
위의 예시 코드에서 divide()
함수를 디버깅 하기로 결정했습니다. pdb.set_trace()
를 호출하여 디버그 세션을 시작할 수 있습니다. 코드를 실행하면 pdb 프롬프트((Pdb)
)가 나타나고 디버깅 명령어를 입력할 수 있습니다.
예를 들어 n
을 입력하면 다음 줄로 코드를 실행하게 됩니다. l
을 입력하면 현재 코드 주변을 보여주는데, 현재 위치는 화살표로 표시됩니다. s
을 입력하면 현재 줄에서 함수의 내부로 이동할 수 있습니다.
위의 예시를 디버깅하면서 pdb 디버그 세션의 명령어를 사용하는 방법을 익힐 수 있습니다.
결론
Python의 내장 디버깅 도구인 pdb를 사용하면 코드 실행 중에 디버그 세션을 시작하고 중단점을 설정하고 디버깅 명령어를 사용할 수 있습니다. 이를 통해 버그를 찾고 해결하는데 도움이 됩니다. PDB를 사용하여 프로그램을 효율적으로 디버깅할 수 있으며, 프로그램 개발 과정에서 중요한 도구가 될 수 있습니다.