我使用import ipdb;ipdb.set_trace()
有时,在使用set_trace
进行调试时,我想要验证帧/源之外的某些方法(使用我的参数调用它,并查看它是如何工作的)。方法尚未在代码中使用,因此跳转是不可能的。
喜欢:
def do_a(): ...
def do_b(): ...
def do_c(): ...
def do_d():
do_a()
import ipdb;ipdb.set_trace()
#here:想在do_b之前检查do_c,但不仅仅是从do_c得到结果(很容易),而是遍历整个do_c并保持当前帧中的位置。
do_b()
有debug
命令,但不能使用函数,我希望交互式shell。
解决方法非常耗时:停止调试器,修改代码(在示例中添加do_c())并重新启动调试器)
答案 0 :(得分:1)
不确定这是否有效,因为这是非常罕见的用例。
使用断点设置命令设置断点,如tbreak
:
http://georgejhunt.com/olpc/pydebug/pydebug/ipdb.html
tbreak do_b # Might or might not work
然后执行do_b,它应该到达断点
do_b()