[파이썬] pdb 설정 및 환경 커스터마이징

Python에서 디버깅을 위한 PDB(Python Debugger)는 매우 유용한 도구입니다. PDB는 코드를 실행하는 동안 중단점을 설정하고, 변수 값 및 스택 추적을 확인하는 등 다양한 디버깅 기능을 제공합니다. 이번 블로그에서는 PDB를 사용할 때 설정 및 환경 커스터마이징하는 방법에 대해 알아보겠습니다.

PDB 사용하기

PDB를 사용하기 위해서는 기본적으로 다음과 같은 코드를 추가하여야 합니다.

import pdb

# 디버깅할 코드
pdb.set_trace()

디버깅할 코드의 원하는 위치에 pdb.set_trace()를 추가하면 해당 부분에서 프로그램이 일시 중지됩니다. 중지된 상태에서는 다양한 명령어를 사용하여 디버깅을 수행할 수 있습니다.

PDB를 실행하면 다음과 같은 기능을 사용할 수 있습니다.

PDB에서는 이 외에도 다양한 명령어와 기능을 제공하며, h(elp) 명령어를 통해 전체 명령어 리스트를 확인할 수 있습니다.

PDB 환경 커스터마이징

PDB는 다양한 옵션을 제공하여 환경을 커스터마이징할 수 있습니다. 이를 통해 디버깅 경험을 개선하고, 개발자의 요구에 맞게 PDB를 조정할 수 있습니다.

PDB의 설정은 ~/.pdbrc 파일 또는 PYTHONPDB 환경 변수를 통해 지정할 수 있습니다. 다음은 PDB를 커스터마이징하기 위한 몇 가지 예제 설정입니다.

1. 자동 실행 명령 설정

PDB를 실행할 때마다 일일히 명령어를 입력하기 번거로울 수 있습니다. 이를 해결하기 위해 자동 실행 명령을 설정할 수 있습니다. 아래 예제를 참고하세요.

import pdb

def pdb_custom_config():
    pdb.set_trace()

def pdb_custom_commands(pdb):
    pdb.do_something() # 원하는 명령어 추가

pdb.Pdb.custom_config = pdb_custom_config
pdb.Pdb.custom_commands = pdb_custom_commands

custom_config 함수는 PDB를 실행할 때 선언되는 함수로, 필요한 설정을 추가하면 됩니다. custom_commands 함수는 PDB를 실행한 후에 원하는 명령어를 자동으로 실행할 수 있도록 지정하는 함수입니다.

2. 기본 중단점 설정

PDB는 중단점 설정을 통해 원하는 위치에서 디버깅을 시작할 수 있습니다. 이때, 기본 중단점을 설정하여 PDB가 실행될 때마다 해당 위치에서 중단되도록 할 수 있습니다.

import pdb

def pdb_set_default_break():
    pdb.set_trace()
    
pdb.Pdb.default_starting_line = pdb_set_default_break

default_starting_line 변수를 사용하여 기본 중단점을 설정하면 PDB를 실행할 때마다 해당 위치에서 중단됩니다.

3. 컬러 출력 설정

PDB를 실행할 때 디버깅 정보를 컬러로 구분하여 보여줄 수 있습니다. 이를 통해 정보를 빠르게 파악하고 구분하는데 도움을 줍니다.

~/.pdbrc 파일을 만들고, 다음과 같이 컬러 출력을 설정할 수 있습니다.

set use_color true

또는 PYTHONPDB 환경 변수를 설정하여 컬러 출력을 활성화할 수 있습니다.

export PYTHONPDB="set use_color true"

요약

PDB 설정과 환경 커스터마이징은 디버깅 작업을 좀 더 효율적이고 편리하게 만들어줍니다. PDB를 사용하여 프로그램의 동작을 멈추고, 변수 및 스택 정보를 검사하여 버그를 찾아내는 것은 개발 과정에서 중요한 부분입니다. PDB의 명령어와 설정을 잘 활용하여 디버깅 작업을 보다 더 효율적으로 수행할 수 있길 바랍니다.