调试器#

JupyterLab 默认包含一个调试器前端。

这意味着可以直接从 JupyterLab 调试笔记本、代码控制台和文件!

要求#

要启用和显示调试器,需要一个支持调试的内核。

以下是已知支持 Jupyter 调试协议的内核列表:

其他 Jupyter 内核也可以通过实现Jupyter 调试器协议来支持调试并兼容 JupyterLab 调试器。

如果您知道其他支持调试的内核,请提交 PR 将它们添加到此列表。

以下是在新的 conda 环境中安装 ipykernelxeus-python 的示例

conda create -n jupyterlab-debugger -c conda-forge "jupyterlab>=3" "ipykernel>=6" xeus-python
conda activate jupyterlab-debugger

用法#

这是一个演示如何启用调试器和设置断点的截屏视频。下面将更深入地描述各个步骤。

A GIF showing how to enable the debugger within the kernel.

使用支持调试器的内核#

首先,您需要检查内核是否支持调试。如果支持,笔记本右上角的 bug 图标将启用。

../_images/debugger-kernel.png

调试笔记本中的代码#

现在让我们为这个笔记本启用调试器。可以通过切换笔记本右上角的 bug 按钮来启用调试器

../_images/debugger-activate.png

一旦启用了调试,我们就可以设置断点并单步执行代码。

让我们定义一个添加两个元素的函数

def add(a, b):
   res = a + b
   return res

我们可以调用该函数并打印结果

result = add(1, 2)
print(result)

现在让我们回到第一个代码单元格,点击第 2 行的空白处添加一个断点

../_images/debugger-breakpoint.png

然后,通过点击 _运行_ 按钮执行第二个代码单元格

../_images/debugger-run.png

执行将在设置断点处停止

../_images/debugger-stop-on-breakpoint.png

探索代码状态#

探索代码状态是通过调试器侧边栏完成的。它显示变量浏览器、断点列表、源预览以及导航调用堆栈的可能性。

../_images/debugger-sidebar.png

变量

可以使用树视图和表格视图探索变量

../_images/debugger-variables.png

调用堆栈

您可以使用调试操作单步执行代码并继续执行

../_images/debugger-callstack.png

断点

在执行停止时可以添加和删除新的断点,它们将显示在断点列表中

../_images/debugger-breakpoints.png

源面板显示当前正在调试的文件的源

../_images/debugger-source.png

如果源对应于已删除的单元格,点击 在主区域打开 按钮将打开源的只读视图。