pub trait DebuggerIntegration {
Show 14 methods
// Required methods
fn trace_state(&self);
fn debug_break(&self);
fn instruction_pointer(&self) -> usize;
fn stack_size(&self) -> usize;
fn stack_top(&self) -> Option<String>;
fn stack_values_vec(&self) -> Vec<String>;
fn call_stack_depth(&self) -> usize;
fn call_frames(&self) -> &[CallFrame];
fn local_values_vec(&self) -> Vec<String>;
fn module_binding_values(&self) -> Vec<(u64, NativeKind)>;
fn set_module_binding(&mut self, index: usize, bits: u64, kind: NativeKind);
fn set_trace_mode(&mut self, enabled: bool);
fn debugger_mut(&mut self) -> Option<&mut VMDebugger>;
fn has_debugger(&self) -> bool;
}Expand description
Debugger integration for VirtualMachine.
Display-only methods (stack_top, stack_values_vec, local_values_vec)
return debug-formatted strings (post-§2.7.4: KindedSlot::Debug).
Data-flow methods (module_binding_values, set_module_binding) are
§2.7.4-deferred pending the parallel-kind track for module bindings.
Required Methods§
Sourcefn trace_state(&self)
fn trace_state(&self)
Trace VM state (for debugging)
Sourcefn debug_break(&self)
fn debug_break(&self)
Trigger a debug break
Sourcefn instruction_pointer(&self) -> usize
fn instruction_pointer(&self) -> usize
Get current instruction pointer
Sourcefn stack_size(&self) -> usize
fn stack_size(&self) -> usize
Get stack size
Sourcefn stack_top(&self) -> Option<String>
fn stack_top(&self) -> Option<String>
Get top of stack as a debug-formatted string (display only).
Sourcefn stack_values_vec(&self) -> Vec<String>
fn stack_values_vec(&self) -> Vec<String>
Get all stack values as debug-formatted strings (display only).
Sourcefn call_stack_depth(&self) -> usize
fn call_stack_depth(&self) -> usize
Get call stack depth
Sourcefn call_frames(&self) -> &[CallFrame]
fn call_frames(&self) -> &[CallFrame]
Get call frames (for debugging)
Sourcefn local_values_vec(&self) -> Vec<String>
fn local_values_vec(&self) -> Vec<String>
Get local variables as debug-formatted strings (display only).
Sourcefn module_binding_values(&self) -> Vec<(u64, NativeKind)>
fn module_binding_values(&self) -> Vec<(u64, NativeKind)>
Get module-binding values for data-flow inspection.
Returns each binding as a (bits, NativeKind) pair via the
§2.7.8 parallel-kind track on VirtualMachine.module_bindings /
module_binding_kinds. Read-side; no refcount change.
Sourcefn set_module_binding(&mut self, index: usize, bits: u64, kind: NativeKind)
fn set_module_binding(&mut self, index: usize, bits: u64, kind: NativeKind)
Set a module-binding variable by index.
Threads the kinded write through module_binding_write_kinded,
which releases the prior occupant via drop_with_kind and
installs the new (bits, kind) pair — same retain/release
discipline stack_write_kinded enforces for stack slots
(ADR-006 §2.7.7 / §2.7.8). Caller transfers in one
strong-count share for heap-bearing kinds.
Sourcefn set_trace_mode(&mut self, enabled: bool)
fn set_trace_mode(&mut self, enabled: bool)
Set trace mode
Sourcefn debugger_mut(&mut self) -> Option<&mut VMDebugger>
fn debugger_mut(&mut self) -> Option<&mut VMDebugger>
Get mutable reference to debugger
Sourcefn has_debugger(&self) -> bool
fn has_debugger(&self) -> bool
Check if debugger is enabled
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".