Hi,
> Ah, I see. But we could record delta here as well; just use 62 bits for it.
Actually if I understand correctly how the altstack works, you won't need
even the 62-bit offset. I think the sigcontext sits on the altstack, right,
and it's the restored RBP/RSP value deltas that are the real problem?
If so I think you can just record into cfa_reg_offset the delta to the
sigcontext_addr as the code does now, but leave {rsp,rbp}_cfa_offset 0.
Then we change the registers to be restored using UC_MCONTEXT_REGS_*,
as you did, not using the delta expressions.
Effectively, we'll use the DWARF info for CFA expression, but assume that
registers actually do come from the ucontext_t. For extra security we can
verify the DWARF locations match what we expect tdep_stash_frame(), maybe
under UNW_DEBUG.
How does that sound to you?
Regards,
Lassi
_______________________________________________
Libunwind-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/libunwind-devel