首頁  >  文章  >  後端開發  >  如何取得正在運行的 Python 應用程式的堆疊追蹤?

如何取得正在運行的 Python 應用程式的堆疊追蹤?

Susan Sarandon
Susan Sarandon原創
2024-10-30 04:46:02529瀏覽

How to Get a Stack Trace of a Running Python Application?

檢查正在運行的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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn