檢查正在運行的Python 應用程式的堆疊追蹤
當Python 應用程式意外掛起時,確定問題根源可能會很困難。幸運的是,有一些技術可以獲取正在運行的應用程式的堆疊跟踪,使您可以查明應用程式停止時正在執行的特定程式碼。
使用自訂訊號處理程序
顯示堆疊追蹤的一種方法是使用自訂訊號處理程序。該技術涉及向正在運行的應用程式發送信號,觸發處理程序捕獲堆疊追蹤並以交互方式顯示它。以下是使用偵錯功能的範例:
<code class="python">import code, traceback, signal def debug(sig, frame): d={'_frame':frame} d.update(frame.f_globals) 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) </code>
呼叫listen()函數後,使用os.kill或kill向進程發送SIGUSR1訊號將中斷正在運行的應用程序,提供Python控制台與堆疊追蹤。
以上是如何取得正在運行的 Python 應用程式的堆疊追蹤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!