[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Libunwind-devel] crashes trying to get a backtrace from a signal ha
From: |
Sven Neumann |
Subject: |
Re: [Libunwind-devel] crashes trying to get a backtrace from a signal handler (ARM) |
Date: |
Fri, 10 Sep 2010 22:05:22 +0200 |
Hi,
On Fri, 2010-09-10 at 15:36 +0200, Lassi Tuura wrote:
> > In case this might help, I have uploaded the assembler code from
> > uClibc-0.9.30.1 that I believe to be relevant here:
> >
> > http://svenfoo.org/misc/sigrestorer.S
>
> No unwind info at least there. You should see some .eh_frame (or
> .debug_frame?) type description a bit like this:
>
> http://repo.or.cz/w/glibc.git/blob?f=sysdeps/unix/sysv/linux/x86_64/sigaction.c#l122
There's nothing like this in uClibc 0.9.30.1
libc/sysdeps/linux/arm/sigaction.c either. I've also checked git master
of uClibc to see if anything changed since then, but it looks like the
relevant files have not been touched over the last two years.
> I guess you could either coax uclibc to add the info, or teach
> libunwind how to walk around it. There's code for example like this to
> try to recognise linux signal return instruction pattern:
>
> http://git.savannah.gnu.org/gitweb/?p=libunwind.git;a=blob;f=src/x86/Gos-linux.c;h=31f83bae01668332dc738cc70fbc8076990a8528;hb=HEAD#l29
>
Unfortunately the implementation of unw_is_signal_frame() is missing for
the ARM platform.
I am totally open for both solutions, but I am afraid, I have not enough
understanding of all this to implement this myself. I can try patches,
either for uClibc or libunwind, and I am also willing to push a working
change upstream, but I definitely need more guidance if I am supposed to
write these patches myself.
Regards,
Sven