ARM64: PC/IP not saved in signal frame
Andrew Turner
andrew at fubar.geek.nz
Tue Feb 7 19:06:25 UTC 2017
On Tue, 7 Feb 2017 12:55:51 -0600
John Marino <freebsdml at marino.st> wrote:
> On 2/7/2017 12:47, John Marino wrote:
> > Hi guys,
> > I've been struggling to provide unwind support on the
> > aarch64-*-freebsd* target of FreeBSD. The only working example on
> > this arch is aarch64-linux (attached). I think I'm 99% done with
> > the freebsd version (attached) but the last value that needs to be
> > pass to the _Unwind_FrameState is the program counter offset.
> >
> > I know the PC is not register-based on aarch64. Linux still saves
> > the value in the signal context, but AFAICT FreeBSD does not.
> >
> > Can somebody
> > A) confirm that the program counter is missing from the saved signal
> > context
> > B) confirm that it needs to be added for proper signal frame
> > unwinding?
> >
> > Alternatively, maybe somebody can figure out a solution given the
> > current freebsd structures, but I'm losing hope on that one. (line
> > 99)
>
> Apparently attachments are stripped out on this mail list.
> You can see the headers here:
> https://leaf.dragonflybsd.org/~marino/linux-unwind.h
> https://leaf.dragonflybsd.org/~marino/freebsd-unwind.h
You want sc->REG_NAME(elr).
Andrew
More information about the freebsd-arm
mailing list