On Sun, Dec 4, 2011 at 10:44 PM, Lassi Tuura <[email protected]> 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

_______________________________________________
Libunwind-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/libunwind-devel

Reply via email to