Notebook 7 includes a browser debugger for pausing Python notebook execution and reading values from the active stack frame. This helps when a cell returns the wrong result and the value that caused it exists only briefly inside a function or loop.
The debugger button is available when the selected kernel supports the Jupyter Debug Protocol. A normal Python 3 (ipykernel) notebook can use breakpoints, stepping controls, the call stack, and the variable viewer without opening the notebook in a separate desktop editor.
A breakpoint pauses before the highlighted line runs. Values assigned earlier in the same frame appear under Variables, while a value assigned on the highlighted line appears only after stepping over that line.
def apply_discount(price, discount):
discounted = price * (1 - discount)
tax = discounted * 0.08
return discounted + tax
invoice_total = apply_discount(125, 0.2) invoice_total
Put the function definition in one cell and the function call in the next cell. Existing notebook code works the same way when the target function or cell is already present.
The toolbar button changes from Enable Debugger to Disable Debugger after the debugger starts.
The red marker in the gutter shows the breakpoint. Line 3 pauses execution before tax = discounted * 0.08 runs.

The paused frame shows discounted as 100, price as 125, and discount as 0.2. Click Continue after recording the value, or click the stop control to abandon the paused run.