실시간 스택 추적을 사용하여 실행 중인 Python 애플리케이션 디버그
간헐적으로 애플리케이션이 정지되는 경우 근본 원인을 해결할 때 좌절감을 느낄 수 있습니다. Python은 실시간 스택 추적을 생성하는 메커니즘을 제공하므로 현재 실행 중인 코드를 검사하고 문제 지점을 식별할 수 있습니다.
신호 처리를 사용한 솔루션
실시간 스택 추적을 얻으려면 다음 코드 활용을 고려하십시오.
<code class="python">import code, traceback, signal def debug(sig, frame): d={'_frame':frame} # Allow access to frame object. d.update(frame.f_globals) # Unless shadowed by global d.update(frame.f_locals) i = code.InteractiveConsole(d) message = "Signal received : entering python shell.\nTraceback:\n" message += ''.join(traceback.format_stack(frame)) i.interact(message) def listen(): signal.signal(signal.SIGUSR1, debug) # Register handler listen()</code>
사용법:
이렇게 하면 Python이 트리거됩니다. 현재 스택 추적으로 콘솔을 실행하고 변수를 탐색할 수 있습니다. 실행을 재개하려면 Ctrl-D를 누르세요.
추가 옵션
백그라운드 프로세스를 디버깅하려면 Python Cookbook 레시피에 제공된 파이프 기반 솔루션을 사용하는 것이 좋습니다.
위 내용은 실시간 스택 추적을 사용하여 실행 중인 Python 애플리케이션을 디버깅하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!