# PL/SQL Debugger

Step through PL/SQL code with breakpoints, watches, and a full call-stack view.

Source: https://www.nexosqlstudio.com/docs/debugger
Language: en
Type: docs

# PL/SQL Debugger

## Database support

Database support does not imply identical features. Connections and SQL worksheets are the starting point; editing, DDL, modeling, transfers, administration and AI operations depend on the engine and workflow. Check the installed version and the relevant guide before relying on an advanced operation.

[Supported databases and feature availability](https://www.nexosqlstudio.com/databases) · [Connection guides](https://www.nexosqlstudio.com/docs/getting-started)

Nexo SQL Studio includes a PL/SQL debugger that integrates with VS Code's standard Debug panel. It starts an Oracle `DBMS_DEBUG` session through an active Nexo connection.

## Requirements

- An active Nexo Oracle connection
- Target PL/SQL compiled with debug information
- Permission to execute `SYS.DBMS_DEBUG` and start a debug session

```sql
-- Grant by a DBA
GRANT EXECUTE ON SYS.DBMS_DEBUG TO your_user;
GRANT DEBUG CONNECT SESSION TO your_user;

-- Required only when debugging another schema's routine
GRANT EXECUTE, DEBUG ON owner.object_name TO your_user;
```

Nexo does not use a DBMS_DEBUG listener, so it does not require a listener port, inbound firewall rule, or DBMS_DEBUG network ACL.

## Setting Breakpoints

Click the gutter to the left of a line number in any `.sql`, `.pkb`, or `.prc` file to toggle a breakpoint. Conditional breakpoints are also supported (right-click a breakpoint).

## Starting a Debug Session

1. Open the **Run and Debug** panel (`Ctrl+Shift+D`).
2. Choose the **PL/SQL Debug** configuration or run **Start PL/SQL debugger**.
3. Press **F5** or use **Preflight + Start Debugger** to validate setup and start listening.
4. Choose the target routine and supply its arguments when prompted. Execution pauses at your first matching breakpoint.

## Debug Controls

| Action | Shortcut |
|--------|----------|
| Continue | `F5` |
| Step Over | `F10` |
| Step Into | `F11` |
| Step Out | `Shift+F11` |
| Stop | `Shift+F5` |

Oracle `DBMS_DEBUG` does not support pausing an already running PL/SQL call. Continue, stepping, and stop remain available.

## Variables & Watch

The **Variables** panel shows all local variables and their current values. Add any expression to the **Watch** panel to track it across steps.

## Call Stack

The **Call Stack** panel shows the full Oracle call stack — including nested procedure calls — so you can navigate up the stack and inspect context at each level.

## Output

Use the Debug Console and the extension output channels to inspect debugger messages, setup problems, and runtime status.


