将Ipython名称空间转移到ipdb

Mar*_*iet 4 python debugging ipython

我正处于ipython会话的中间.我加载了一个foo包含函数的模块foo.bar.在工作的时候,我注意到foo.bar当我输入一些输入时给出了一些奇怪的输出x,其中x是我本地ipython范围中的一个变量.我想调查调试器中的行为.

如何在调试器中设置断点foo.bar并运行foo.bar(x)

我知道pdb.set_trace(),但它需要我打开foo模块的代码手动插入断点,保存它,在ipython中重新加载模块等.必须有一个更好的方法.

Liq*_*ire 5

我相信你可以pdb.runcall在这种情况下使用:

import pdb
pdb.runcall(foo.bar, x)
Run Code Online (Sandbox Code Playgroud)