我想在異常期間找出所有「調用」堆棧幀中的所有活動變量。在異常期間檢索所有堆棧幀中的所有活動變量
例如,請考慮下面的例子來說明異常滲出高達callClient
場景
import time
def mainFunc():
now = time.time()
author = "me"
callClient()
def callClient():
message = "Hello, World!"
to = "stackoverflow.com"
callNoOp()
callException()
def callNoOp():
subject = "Question in stack trace"
print "No-op"
def callException():
question = "What do I do?"
raise Exception("Vishwanathan, vellai vendum!")
mainFunc()
。我想看看那個時候所有的活動變量。 locals()
會幫助我這種要求。
我還想知道的是message
和to
在3210的值。而異常發生時的值爲question
。
我已經通過了traceback
module docs。它似乎打印堆棧跟蹤,但不是在這些堆棧幀中激活的變量。
你爲什麼要調用一個函數來引發異常?如果你從'callClient'提出它,你就可以很容易地在追蹤中包含'to'和'message'。你能否提供一個你想要做的不太抽象的例子? – jonrsharpe 2014-11-24 09:31:08
我試圖說明我最近面臨的情況。最近繼承了一個代碼,沒有在多個地方失敗的文檔。我沒有授權對代碼進行大的修改,以免在這個高流量的季節變得不穩定。我只依靠日誌。我想用更多的數據填充日誌,這可以幫助我進行調試。喬恩,你會考慮取消倒票嗎? – Sriram 2014-11-24 09:42:25
@jonrsharpe:可能會產生一個示例回溯。 – 2014-11-24 09:43:04