This is the mail archive of the
mailing list for the GDB project.
Re: ARM signal trampolines
On Mon, Jan 18, 2010 at 04:27:23PM -0600, Matt Fischer wrote:
> > None of this code is for the vector area trampolines which are brand
> > new. ?Just a few months old, I believe. ?It is for the SA_RESTORER
> > functions in glibc.
> I guess I'm confused--the code I'm looking at appears to have been in
> the kernel since about 2.6.13--it's the vector of return codes called
> sigreturn_codes in arch/arm/kernel/signal.c, which gets copied to
> the vector page by trap_init() in arch/arm/kernel/traps.c. Is there
> some other change which has been made to this mechanism in more recent
I may be confused. I thought it previously copied code to the stack,
and only recently started putting it on the vector page.
> Given what you've said, the easiest thing to do for my purposes is
> probably just to patch Bionic to use SA_RESTORER. Then I can just
> ensure the trampoline is constructed to match what's already in there
> for glibc, and things should all work out. I don't know if I could
> get it accepted upstream or not, but it should at least allow my local
> testing to work out.
Yes, that will be easy and should work.
> Long term, though, it would certainly be nice if gdb could see the
> vector page--I've run into a couple situations where I've needed to
> see what was in there, and gdb wasn't able to help. It seems like the
> kernel patch to do this wouldn't be overly complicated--is there some
> reason that this isn't a desirable feature, or is it just that
> nobody's had a pressing enough need for it so far?
I think it's just not been needed.