Skip to content

fix: track backtrace register availability - #273

Open
swananan wants to merge 1 commit into
mainfrom
fix/backtrace-register-availability
Open

fix: track backtrace register availability#273
swananan wants to merge 1 commit into
mainfrom
fix/backtrace-register-availability

Conversation

@swananan

Copy link
Copy Markdown
Owner

Summary

  • track RBP availability separately from its recovered value across inline and tail-call unwinding
  • reject unavailable CFA and return-address register sources before issuing memory probes
  • add regression coverage for a valid zero-valued RBP used as the return-address register

Testing

  • cargo fmt --all -- --check
  • cargo clippy --all-targets --all-features -- -D warnings
  • cargo test -p ghostscope-protocol -p ghostscope-compiler --lib
  • targeted host e2e for zero-valued RBP, undefined RBP propagation, and unavailable return-address recovery
  • full host e2e reached backtrace_execution with 31/31 passing, then stopped at the unrelated existing complex_types_execution::test_cross_type_comparisons_local pointer ordered-comparison expectation

Container-topology e2e was intentionally skipped because this change does not affect container, Docker, or PID-namespace behavior.

Preserve RBP availability across inline and tail-call unwinding so a
zero-valued register remains distinct from an unavailable one.

Reject unavailable CFA and return-address sources before issuing any
unrelated memory probes, and cover the zero-valued tail-call case in e2e.

Serialize verifier-heavy backtrace e2e loads so concurrent tests do not
stall shared container sandboxes in CI.
@swananan
swananan force-pushed the fix/backtrace-register-availability branch from 7277f81 to 8daf31c Compare August 17, 2026 03:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant