在 ipython 控制台中调试魔术功能

debug magic function in ipython console

我有一个名为 foo.py 的文件。在该文件中,我有一堆函数,我想通过设置断点而不是使用 set_trace 对其进行硬编码来调试其中一个函数,称为 foo.bar。我在 IPython 控制台中工作,我知道有一个 %debug 魔法函数可用于此目的,语法为:

%debug [--breakpoint FILE:LINE]

所以我试试

%debug --breakpoint foo.py:10

在第 10 行设置断点。但是,我如何实际执行代码以便 IPython 识别断点?正在做

import foo
foo.bar()

不工作,因为断点被简单地跳过了。

实现方式:

from foo import bar
%debug --breakpoint /path/to/foo.py:10 bar()

这会将 bar 导入命名空间并 运行 它与模块第 10 行的断点。