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