我想在异常期间找出所有“调用”堆栈帧中的所有活动变量。在异常期间检索所有堆栈帧中的所有活动变量
例如,请考虑下面的例子来说明异常渗出高达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