내 Ubuntu 시스템에 스레드가 있는 실행 중인 Python 서비스를 디버깅하고 싶습니다. 실행 중인 루트 프로세스를 연결하고 Python 스크립트에 중단점을 배치할 수 있어야 합니다.
이 작업을 수행하는 가장 좋은 방법은 무엇입니까?
답변1
pdb
이를 위해 Python 디버거를 사용할 수 있습니다. 모듈로 가져오거나 대화형으로 사용할 수 있습니다. 2.7에 대한 문서는 다음과 같습니다.https://docs.python.org/2/library/pdb.html
답변2
내 프로젝트를 사용할 수 있습니다미친. 실행 중인 Python 프로그램에 연결하고 현재 터미널에서 디버깅할 수 있는 Python 디버거입니다. Python3 pyrasite
과 유사 pyringe
하지만 지원하고, gdb가 필요하지 않으며 디버거와 함께 사용됩니다 IPython
(색상 및 자동 완성 기능이 있는 pdb를 의미함).
예를 들어, 스크립트가 멈춰 있는 위치를 확인하려면 다음을 실행할 수 있습니다.
madbg attach <pid>
그런 다음 디버거 셸에 다음을 입력합니다.
bt