Expand description
DWARF-backed PC → (file, line) resolver for SBF ELFs.
Built on addr2line::Loader so we get DWARF-5 / split-DWARF / supplementary
object support for free. The resolver is best-effort: if the ELF has no
DWARF (stripped deploys, release builds without
CARGO_PROFILE_RELEASE_DEBUG=2, programs built by third parties) we return
None and the TUI source pane falls back to a “no source available” notice
— the rest of the stepper is unaffected.
SBF maps PCs to byte addresses as text_addr + pc * INSN_SIZE. LLVM emits
standard DWARF line tuples on those byte addresses so addr2line works
once we do that translation.
Structs§
- Source
Resolver - Per-ELF source resolver. Cheap to query (one interval-tree lookup).
Constants§
Functions§
- discover_
platform_ tools_ stdlib_ roots - Locate every
platform-tools/rust/lib/rustlib/src/rust/library/tree under~/.cache/solana/and return them newest-version-first. Empty vec if the solana toolchain isn’t installed viaagave-install.