在 Jupyter 中停止 ipdb 调试
Stopping ipdb debugging in Jupyter
我正在使用 Jupiter 并尝试学习如何调试。但是,我无法完全退出调试模式。
for i in np.arange(1,10, 0.01):
a = someFunc(i)
# I want to check the value of "a" in each iteration
# here!
from IPython.core.debugger import Tracer; Tracer()() #this one triggers the debugger
如果我 运行 这段代码并在调试 ipdb 提示符中键入 "q" 或 "exit",它只会保持 运行ning 代码直到下一个断点,我无法停止调试。我怎样才能停止调试?我查看了文档,但找不到除 "q".
之外的任何其他命令
您需要在进入循环之前开始跟踪。当前发生的情况是您在每个循环步骤中创建一个新的调试器实例。
您的代码如下所示:
from IPython.core.debugger import Tracer
for i in np.arange(1,10, 0.01):
a = someFunc(i)
Tracer()()
您将获得一个命令行提示符,其中可以使用所有标准 ipdb 函数。通过在执行 someFunc(i)
后立即调用 Tracer,每次迭代都会得到一个新提示。要继续执行直到下一次迭代,请使用 c
命令。要设置断点,请使用 b <line number>
。 q
将一起停止执行。
我正在使用 Jupiter 并尝试学习如何调试。但是,我无法完全退出调试模式。
for i in np.arange(1,10, 0.01):
a = someFunc(i)
# I want to check the value of "a" in each iteration
# here!
from IPython.core.debugger import Tracer; Tracer()() #this one triggers the debugger
如果我 运行 这段代码并在调试 ipdb 提示符中键入 "q" 或 "exit",它只会保持 运行ning 代码直到下一个断点,我无法停止调试。我怎样才能停止调试?我查看了文档,但找不到除 "q".
之外的任何其他命令您需要在进入循环之前开始跟踪。当前发生的情况是您在每个循环步骤中创建一个新的调试器实例。
您的代码如下所示:
from IPython.core.debugger import Tracer
for i in np.arange(1,10, 0.01):
a = someFunc(i)
Tracer()()
您将获得一个命令行提示符,其中可以使用所有标准 ipdb 函数。通过在执行 someFunc(i)
后立即调用 Tracer,每次迭代都会得到一个新提示。要继续执行直到下一次迭代,请使用 c
命令。要设置断点,请使用 b <line number>
。 q
将一起停止执行。