Function: Hooks for interactive execution, stepping, time-travel debugging, and notebooks. Steps at source/IR/machine level; performs reversible debugging via snapshots/logs; supports hot edit-and-continue via JIT patching while preserving debugger state.
Desired function
Provide interactive execution, stepping, time-travel debugging, and notebooks.
Futamura role
Consumer of (i), (p_x), compiled code from (c), and verification information from (i^\sharp).
Inputs
- Running program, breakpoints, user commands.
- Mappings between source, IR, compiled code.
- Deopt and unwinding metadata.
Processing
- Step at source/IR/machine level.
- Perform reversible debugging via snapshots/logs.
- Hot “edit-and-continue” via JIT patching while preserving debugger state.
Outputs
- Interactive sessions and outputs.
Function: Hooks for interactive execution, stepping, time-travel debugging, and notebooks. Steps at source/IR/machine level; performs reversible debugging via snapshots/logs; supports hot edit-and-continue via JIT patching while preserving debugger state.
Desired function
Provide interactive execution, stepping, time-travel debugging, and notebooks.
Futamura role
Consumer of (i), (p_x), compiled code from (c), and verification information from (i^\sharp).
Inputs
Processing
Outputs