Skip to main content

Module source

Module source 

Source
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§

SourceResolver
Per-ELF source resolver. Cheap to query (one interval-tree lookup).

Constants§

CI_PLATFORM_TOOLS_PREFIX

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 via agave-install.