【问题标题】:ipdb: tracing via additional code on demand | pythonipdb:根据需要通过附加代码进行跟踪| Python
【发布时间】:2013-09-03 11:36:54
【问题描述】:

我用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() 并重新启动调试器)

【问题讨论】:

    标签: python ipdb


    【解决方案1】:

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

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

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

      tbreak do_b   # Might or might not work
    

    然后只执行do_b,它应该会命中断点

      do_b()
    

    【讨论】:

    • 不,不起作用 - 它只是框架中加载代码的断点;我想我需要为此使用单独的新框架(?),但这不是我的水平。但是我发现 pudb - 不错的选择。
    猜你喜欢
    • 2020-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多