gpt4 book ai didi

python ipdb.set_trace() 一帧 "up"(frame=?)

转载 作者:太空宇宙 更新时间:2023-11-03 14:11:45 24 4
gpt4 key购买 nike

有时,当我调用 ipdb 时,我知道我想要成为跟踪设置上方的框架。我认为这就是 API 公开 frame 参数的原因(如 the documentation 中所述)。

所以这是函数:

import inspect, ipdb

def invoke_a_frame_up():
ipdb.set_trace(frame=inspect.stack()[i][0])

我试图找出函数中的i,以便当invoke_a_frame_up被调用时,跟踪不在内部 invoke_a_frame_up

或者,更恰本地说,我正在尝试找出一般如何实现这一目标。我已经尝试了每个 i 的堆栈深度,并且跟踪似乎从同一帧开始,直到 i 大于深度,此时我得到 IndexError('list index out of range', )

最佳答案

import inspect
import ipdb

def dbg_up():
ipdb.set_trace(inspect.currentframe().f_back.f_back)

def foo():
var = 'in foo'
bar()

def bar():
var = 'in bar'
dbg_up()

foo()

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

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

关于python ipdb.set_trace() 一帧 "up"(frame=?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48451943/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com