알쓸전컴(알아두면 쓸모있는 전자 컴퓨터)

gdb 로 liunx python process 디버깅하기 본문

카테고리 없음

gdb 로 liunx python process 디버깅하기

백곳 2024. 3. 14. 17:16

해당 문제는 병렬 프로세스 처리중 몇몇 프로세스에서 반복된 루프에서 정지되는 현상이 있어 원인이 무었인지 파악하고자 필요해서 디버깅할때 유용한 방법 입니다. 

 

아래와 같이 가상 환경의 python을 gdb의 인자와 함께 pid를 인자로 넘겨주고 gdb를 실행 시킵니다. 

sudo gdb /home/test/django_project/test/venv/bin/python 3398109

 

 

 

아래 명령어를 치면

(gdb) bt

 

C코드로 된 스택 트레이스가 보이게 됩니다. 

이를 python으로 변경하기 위해서는 

 

 

해당 python 실행파일의 원본이 되는 소스 코드에 보면 위와 같은 gdb 폴더안에 libpython.py 파일이 있습니다. 

 

(gdb) source /home/bhkim/Python-3.10.10/Tools/gdb/libpython.py

 

 

 

위와 같이 python 코드의 스택 트레이스를 보고 분석 할수 있습니다. 

Comments