최근 python 프로그램을 디버깅 하기 위해서 gdb를 사용한적이 있다.
gdb for python을 사용하기 위해선 아래의 링크에 자세한 설명이 되어 있는데 나는 항상 왜 잘 안될까
https://wiki.python.org/moin/DebuggingWithGdb

gdb로 python 프로그램에 아래처럼 붙었지만 py-bt라는 명령어를 찾을수 없다.

sudo gdb -p {pid}
  • 원인

    • gdb가 python을 디버깅 하기 위한 python module이 자동적으로 로드되지 않아서 이다.
  • 간단 해결방법

    • libpython.py파일을 직접 받아서 gdb에서 source로 로드한다.

      wget https://hg.python.org/cpython/rawfile/2.7/Tools/gdb/libpython.py ## libpython을 받음 python2.7용
      gdb -p {pid} ## pid로 프로그램에 붙는다.
      ...
      (gdb) source libpython.py ## python debug모듈을 로드함

      제공되는 명령어

      py-bt               py-down             py-locals           py-up               python-interactive
      py-bt-full          py-list             py-print            python

사용법은 위 wiki에 있다.

추가) debuginfo-install로 설치가 제대로 안될 때

  • vi /etc/yum.repos.d/CentOS-Debuginfo.repo 에서... enabled=0 을 enabled=1 로 변경하면 잘된당.

-끝-

BELATED ARTICLES

more