[파이썬] pdb 디버거 세션 도중 변수 변경하기

PDB(python debugger)는 Python 프로그램에서 버그를 찾고 디버깅하기 위해 사용되는 강력한 도구입니다. PDB를 사용하면 프로그램 실행 중에 중단점을 설정하고 코드를 단계별로 실행하여 변수의 값을 확인할 수 있습니다.

하지만 PDB를 사용하다가 변수의 값을 변경하고 싶을 때가 있을 수 있습니다. 이 글에서는 PDB 디버거 세션 도중에 변수의 값을 변경하는 방법을 알아보겠습니다.

PDB 디버거 시작하기

PDB 디버거를 사용하기 위해 프로그램 내에서 중단점을 설정해야 합니다. 다음은 PDB 디버거를 시작하는 방법입니다:

import pdb

def my_function():
   x = 10
   y = 20
   pdb.set_trace()
   z = x + y
   print(z)

my_function()

위의 코드에서 pdb.set_trace() 함수를 호출하면 프로그램이 중단됩니다. 이후에 디버거 세션에서 변수의 값을 확인하고 변경할 수 있습니다.

디버거 세션 도중 변수 확인하기

디버거 세션에서 변수의 값을 확인하려면 p 명령어를 사용합니다. p 변수명과 같은 형식으로 입력하면 변수의 값을 출력할 수 있습니다. 예를 들어, p x를 입력하면 변수 x의 값을 확인할 수 있습니다.

(Pdb) p x
10

디버거 세션 도중 변수 변경하기

PDB 디버거 세션 도중에 변수의 값을 변경하려면 assign 명령어를 사용합니다. assign 변수명 = 값과 같은 형식으로 입력하면 변수의 값을 변경할 수 있습니다. 예를 들어, assign x = 20을 입력하면 변수 x의 값을 변경할 수 있습니다.

(Pdb) assign x = 20
x = 20

변수의 값을 변경한 후에는 변경된 값을 확인할 수 있습니다.

(Pdb) p x
20

디버그 세션 종료하기

변수의 값을 변경한 후에는 일반적으로 디버거 세션을 종료하고 프로그램을 계속 실행하게 됩니다. 디버거 세션을 종료하기 위해서는 continue 명령어를 사용합니다.

(Pdb) continue

이제 코드가 디버그 모드에서 벗어나고 실행이 계속되며, 변경된 변수의 값이 반영됩니다.

결론

PDB 디버거를 사용하여 프로그램을 디버깅하는 동안 변수의 값을 변경하는 것은 매우 유용한 기능입니다. p 명령어로 변수의 값을 확인하고 assign 명령어로 변수의 값을 변경할 수 있습니다. 이러한 기능을 활용하여 효율적인 디버깅을 진행할 수 있습니다.