libunwind-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Libunwind-devel] [RFC][patch] Fix crash in _ULx86_64_tdep_trace whe


From: Lassi Tuura
Subject: Re: [Libunwind-devel] [RFC][patch] Fix crash in _ULx86_64_tdep_trace when sigaltstack is too far away
Date: Fri, 11 Nov 2011 22:14:57 +0100

Hi,

> 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?

Reading the DWARF info another time it seems above's wrong? Do I understand
right that at least linux gives CFA offset to the final restored RSP value
(via DW_OP_deref)? I so I take that explains why the RBP/RSP offsets are so
large as they are from original stack to the ucontext_t - and cfa_reg_offset
could also overflow?

From my side any mechanism which is cacheable (~ delta based) is fine. It
seems Paul's approach to locate sigcontext_addr and use UC_MCONTEXT_GREGS_*
offsets to restore RBP/RSP/RIP is best here, with comment why we don't use
the DWARF info.

Or maybe we should just use more space for the bit fields.

Sorry for hypothetical comments, I won't be able to look into this more for
a little while.

Regards,
Lassi


reply via email to

[Prev in Thread] Current Thread [Next in Thread]