Skip to content

fix(debug): match Rust function breakpoints and cover recovered frames - #162

Merged
bitwalker merged 1 commit into
nextfrom
feat/vm-036-call-frames
Oct 21, 2026
Merged

bitwalker merged 1 commit into
nextfrom
feat/vm-036-call-frames

Conversation

@djolertrk

@djolertrk djolertrk commented Oct 15, 2026 •

Copy link
Copy Markdown
Collaborator

Function breakpoints used raw assembly context names, so a breakpoint such as break in foo::inner could miss a Rust-mangled procedure even when its backtrace displayed the source name. Match both the raw symbol and its demangled name, including in engine builds without default features.

Retain focused regression coverage from the original #162 and the compact inline-range roundtrip, gap, endpoint, and ordering test from #163. Coverage includes repeated invocation identities, same-named physical and source-inline frames, serialized-package DAP traces, plain and dynamic calls, tail wrappers, branches, loops, identical bodies, and reload.

Preserve the current finish/DAP step-out policy: stop at the next caller assembly operation, skipping tail-only recursive callers that have only control cycles remaining. Existing VM 0.36.2 recovery, frame-event fallback, and replay call tracing stay in place.

@djolertrk
djolertrk requested a review from bitwalker October 15, 2026 11:55
@github-actions

github-actions Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Code Metrics Report

next (b164058) #162 (d9b18d8) +/-
Coverage 81.3% 81.3% +0.0%
Details
  |           | next (b164058) | #162 (d9b18d8) |  +/-  |
  |-----------|----------------|----------------|-------|
+ | Coverage  |          81.3% |          81.3% | +0.0% |
  |   Files   |             69 |             69 |     0 |
  |   Lines   |          11973 |          11978 |    +5 |
+ |   Covered |           9743 |           9748 |    +5 |

Code coverage of files in pull request scope (81.4% → 81.5%, patch 100.0%)

Files Coverage +/- Patch Coverage Status
crates/engine/src/debug/breakpoint.rs 93.7% +0.1% 100.0% modified
crates/engine/src/debug/stacktrace.rs 76.9% 0.0% 100.0% modified

Reported by octocov

Coverage CI run

Match raw assembly context names and their demangled Rust source names so
function breakpoints agree with stack traces, including without std.

Retain focused frame and serialized-package DAP regressions from the
original call-frame work, plus compact inline-range serialization and gap
coverage. Preserve the current finish and step-out policy of stopping at
a caller assembly operation, including tail-only recursive calls.

Co-authored-by: djole <djolertrk@gmail.com>
@bitwalker
bitwalker force-pushed the feat/vm-036-call-frames branch from 4fed098 to a5dd821 Compare October 21, 2026 00:17
@bitwalker bitwalker changed the title feat(debug)!: recover frames from VM metadata fix(debug): match Rust function breakpoints and cover recovered frames Oct 21, 2026
@bitwalker
bitwalker marked this pull request as ready for review October 21, 2026 00:19
@bitwalker
bitwalker merged commit 80baa1f into next Oct 21, 2026
19 checks passed
@bitwalker
bitwalker deleted the feat/vm-036-call-frames branch October 21, 2026 00:31
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.

2 participants