我使用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())并重新启动调试器)
最佳答案
不确定这是否有效,因为这是非常罕见的用例。
使用断点设置命令设置断点,例如tbreak
:
http://georgejhunt.com/olpc/pydebug/pydebug/ipdb.html
tbreak do_b # Might or might not work
然后执行do_b,它应该会到达断点
do_b()
关于python - ipdb:按需通过附加代码进行跟踪 | Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18591313/