【发布时间】:2015-03-14 23:40:29
【问题描述】:
我是使用 ipdb 的新手,并添加了以下示例
print "I see this print statement\n"
foo="bar"
import ipdb
ipdb.set_trace()
print "Never see this statement because program hangs:
print "But if the prior two debugging lines were removed it DOES show up"
在我的代码中的某个位置,远在有一些数据问题的部分之前。 通过添加这段代码,我的程序就会挂起:没有打印语句,没有断点,唯一继续的方法是点击 control-c。
这里可能发生了什么?
更新 我关闭/重新启动了 ipython。这清除了一些东西:现在我可以进入 ipdb 提示符
ipdb>
但是,当我尝试打印任何变量时,它仍然挂起:
ipdb. print foo
【问题讨论】:
-
也许您可以复制粘贴运行脚本的调用,并包含您进入调试器并尝试执行任何typical debugging commands 的行,例如
print。这样我们就不会猜测您所说的“无打印声明”是什么意思... -
谢谢 我无法复制代码 - 出于各种原因。由于程序挂起,因此无法执行任何命令。程序一直在运行(尽管结果不正确),直到我在 OP 中精确添加了这两行。我也确实看到了正常的打印语句之前调试命令,但没有看到之后它。
-
ipdb显然是一个旨在与 iPython 结合使用的 python 调试器。这是故意的吗?你不是在找pdb吗? -
@OliverW。我正在使用 ipython
-
当您使用相同的 import 语句运行
hello world脚本并在顶部调用set_trace时会发生什么(您最终会得到一个 3-LOC 文件)?它也挂了吗?