1

我用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()

# 这里:想在 do_b 之前检查 do_c,但不仅仅是从 do_c 获取结果(这很容易),而是跟踪整个 do_c 并保持在当前帧中的位置。

  do_b()

debug命令,但不能使用函数,我希望交互式 shell。

解决方法很耗时:停止调试器,修改代码(在示例中添加 do_c())并重新启动调试器)

4

1 回答 1

1

不确定这是否有效,因为这是非常罕见的用例。

使用断点设置命令设置断点,例如tbreak

http://georgejhunt.com/olpc/pydebug/pydebug/ipdb.html

  tbreak do_b   # Might or might not work

然后只需执行 do_b 它应该会到达断点

  do_b()
于 2013-09-03T15:45:55.450 回答