# Step debugger

> For the complete documentation index, see [llms.txt](/llms.txt)

The viewer's debugger is the same pause-on-failure machinery the agent uses —
exposed visually.

## Breakpoints

Click the gutter next to any step to toggle a breakpoint. Breakpoints persist to
`unotest/.debugger.json`, so the CLI and agent see them too.

## Run paused

Click **Debug** (or `e2e <name> --debug`) to run with a visible browser that
pauses on breakpoints and on failure. A paused run shows the reason (breakpoint /
manual / failure) and the exact line, highlighted in the gutter.

## Controls

- **Continue** — run to the next breakpoint or the end.
- **Step** — execute the next statement.
- **Stop** — abort the run.

## Inspect

While paused, the inspector offers:

| Tab | Shows |
| --- | --- |
| **Vars** | live variables in scope (truncated to 4 KB each) |
| **Call stack** | your function frames, outer → inner (`file:line`) |
| **Trace** | the full event log since the run started |
| **Breakpoints** | every breakpoint, with add/remove |

This is the human side of [self-healing](/concepts/debugging/): you can take over
the same paused state the agent works from.
