Commit 2aba648
Fix x64 data breakpoint handling after CORINFO_HELP_ARRADDR_ST inlining (#127251)
After #126547, the WriteBarrier FCall was converted from native (FCall)
to managed. This affected the debugger's unwind logic for data
breakpoint handling (AdjustContextForJITHelpersForDebugger) resulting in
the debugger to unwind into the JIT helper (CastHelpers.StelemRef)
rather than user code.
The fix adds a loop after the initial unwind that checks whether the
landed-on frame belongs to the CastHelpers
class and continues unwinding until it reaches user code. This only
affects x64 data breakpoints, as x86 does a raw single-frame stack pop
(restores EIP from ESP) rather than
VirtualUnwindToFirstManagedCallFrame, so it was unaffected. ARM64 does
not support data breakpoints.
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>1 parent 2b16e8b commit 2aba648
1 file changed
Lines changed: 2 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9709 | 9709 | | |
9710 | 9710 | | |
9711 | 9711 | | |
9712 | | - | |
| 9712 | + | |
| 9713 | + | |
9713 | 9714 | | |
9714 | 9715 | | |
9715 | 9716 | | |
| |||
0 commit comments