将Ipython名称空间转移到ipdb

时间:2011-04-12 11:50:09

标签: python debugging ipython

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

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

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

1 个答案:

答案 0 :(得分:5)

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

import pdb
pdb.runcall(foo.bar, x)