MCPcopy Create free account
hub / github.com/bytecodealliance/wasmtime / decode

Method decode

crates/wasmtime/src/runtime/debug.rs:675–694  ·  view source on GitHub ↗

Return virtual frames corresponding to a physical frame, from outermost to innermost.

(registry: &ModuleRegistry, pc: usize)

Source from the content-addressed store, hash-verified

673 /// Return virtual frames corresponding to a physical frame, from
674 /// outermost to innermost.
675 fn decode(registry: &ModuleRegistry, pc: usize) -> (&StoreCode, Vec<VirtualFrame>) {
676 let (store_code, pc) = registry
677 .store_code_by_pc(pc)
678 .expect("Wasm frame PC does not correspond to a module");
679 let table = store_code.code_memory().frame_table().unwrap();
680 let pc = u32::try_from(pc).expect("PC offset too large");
681 let program_points = table.find_program_point(pc, FrameInstPos::Post)
682 .expect("There must be a program point record in every frame when debug instrumentation is enabled");
683
684 (
685 store_code,
686 program_points
687 .map(|(wasm_pc, frame_descriptor, stack_shape)| VirtualFrame {
688 wasm_pc,
689 frame_descriptor,
690 stack_shape,
691 })
692 .collect(),
693 )
694 }
695}
696
697/// Data computed when we visit a given frame.

Callers 1

image_to_tensorFunction · 0.45

Calls 8

store_code_by_pcMethod · 0.80
code_memoryMethod · 0.80
find_program_pointMethod · 0.80
collectMethod · 0.80
expectMethod · 0.45
unwrapMethod · 0.45
frame_tableMethod · 0.45
mapMethod · 0.45

Tested by

no test coverage detected