python ipdb.set_trace()一帧;“向上”;(帧=?)

python ipdb.set_trace()一帧;“向上”;(帧=?),python,ipdb,Python,Ipdb,有时,当我调用ipdb时,我知道我希望成为跟踪设置位置上方的一个帧。我猜想这就是API公开frame参数的原因(如中所述) 下面是函数: import inspect, ipdb def invoke_a_frame_up(): ipdb.set_trace(frame=inspect.stack()[i][0]) 我试图找出我在函数中的位置,这样,当调用invoke\u a\u frame\u up时,跟踪不在invoke\u frame\u up内 或者,更恰当地说,我正试图弄清楚

有时,当我调用ipdb时,我知道我希望成为跟踪设置位置上方的一个帧。我猜想这就是API公开
frame
参数的原因(如中所述)

下面是函数:

import inspect, ipdb

def invoke_a_frame_up():
   ipdb.set_trace(frame=inspect.stack()[i][0])
我试图找出我在函数中的位置,这样,当调用
invoke\u a\u frame\u up
时,跟踪不在
invoke\u frame\u up

或者,更恰当地说,我正试图弄清楚如何实现这一目标。我尝试了堆栈深度的每一个I,跟踪似乎从同一帧开始,直到I大于深度,此时我得到
indexer(“列表索引超出范围”)

vanilla
pdb的用户:您的界面略有不同,如下所示:

pdb.Pdb().set_trace(inspect.currentframe().f_back.f_back)

仅仅执行
up
命令有什么问题吗?@HaPsantran您应该在下面创建您的答案,如果它对您有效,则将其标记为已接受。请勿编辑您的问题以包含答案。谢谢。您的示例也适用于我,但是当我在set_trace()调用之后添加quit()时,我再也得不到所需的结果。我将编辑我的问题以进一步解释。
pdb.Pdb().set_trace(inspect.currentframe().f_back.f_back)