Expand description
Time-travel debugging support for the Shape VM.
Captures VM state snapshots at configurable intervals during execution, allowing forward and backward navigation through execution history.
§Wave 6.5 R-async-time migration (ADR-006 §2.7.7 / §2.7.8)
Pre-bulldozer the snapshot stored Vec<ValueWord> for stack_snapshot
and module_bindings, with a manual Clone that walked each element
through the deleted value_word_drop::vw_clone and a Drop that ran
vw_drop_slice. ValueWord is deleted (CLAUDE.md “Forbidden Patterns”)
and the §2.7.7 stack ABI carries data in a Vec<u64> data track plus
a parallel Vec<NativeKind> kinds track. The snapshot tracks adopt the
same lockstep shape: *_data: Vec<u64> plus *_kinds: Vec<NativeKind>,
with clone_with_kind / drop_with_kind (replacing vw_clone /
vw_drop_slice) handling refcount discipline.
Index invariant — for every snapshot, stack_data.len() == stack_kinds.len()
and module_bindings_data.len() == module_bindings_kinds.len(). The
Clone and Drop impls walk both tracks in lockstep per ADR-006 §2.7.7.
Structs§
- Time
Travel - Time-travel debugger state.
- Time
Travel Config - Configuration for the time-travel debugger.
- VmSnapshot
- A snapshot of VM state at a point in time.
Enums§
- Capture
Mode - When to capture VM snapshots.
- Capture
Reason - Why a snapshot was captured.