libunwind-devel
[Top][All Lists]
Advanced

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

Re: [Libunwind-devel] [RFC] _ULx86_64_tdep_trace returns off-by-one addr


From: Paul Pluzhnikov
Subject: Re: [Libunwind-devel] [RFC] _ULx86_64_tdep_trace returns off-by-one addresses
Date: Sun, 4 Dec 2011 22:54:04 -0800

On Sun, Dec 4, 2011 at 10:44 PM, Lassi Tuura <address@hidden> wrote:

> I suppose in fast trace under "case UNW_X86_64_FRAME_SIGRETURN" we could
> maybe fix things up with something like:
>
>  /* In x86_64 the signal frame is usually __restore_rt, and we didn't
>     get there by a call, it's just set up to look like that on stack.
>     Because of d->use_prev_instr we ended up reporting an address one
>     byte before the function at previous frame. Fix that up now. */
>  if (depth)
>    buffer[depth-1] = (uint64_t) buffer[depth-1]+1;
>
> Does that seem like a sensible idea to anyone?

I was going to propose the same fix-up, but I haven't yet read the
threads you've already referenced.

> I'll try to check if this an> ok strategy for platforms other than linux, but 
> I need to dust my VMs first.
The fix-up could of course be made conditional: do it only on Linux
(and anywhere else where it is required).

Thanks,--
Paul Pluzhnikov



reply via email to

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