Skip to content

Trace logic with the Virtual Debugger

The Virtual Debugger lets you step through a function's logic by hand, without running the code — ideal when you can't run it, can't reproduce a bug in a live debugger, or just want to reason methodically about the control flow. You make the branch decisions; it records the path. (For the whole function's branch structure at a glance, open its control-flow graph instead — the Virtual Debugger is for walking one path at a time.)

Start it

With a function selected (find one fast), right-click → Start Virtual Debugger (Ctrl+Shift+B), or use the debug toolbar. (It's offered only for debuggable functions; if none is selected you'll be prompted to pick one.) The window opens as Virtual Debugger for .

Step through

Drive it with the toolbar buttons or keyboard:

Action Key
Previous statement Up
Next statement Down
Enter block Right
Enter function Enter
Exit function Esc

At decision points you choose the branch; the debugger tracks the Path you took. Use Copy to Clipboard to hand that path to whoever's fixing the bug.

The Virtual Debugger for main: the source with an execution arrow on the current statement, a step toolbar above, the Path panel on the right, and the Call Stack dock below.
The Virtual Debugger on main — the arrow marks the current statement, the Path panel (right) records every step you take, and the Call Stack (bottom) tracks where you are.

To keep a function's structure and enclosing scope in view while you read rather than step, use Contextual information and scope.