Re: Problem reading corefiles on ARM

Mark Kettenis
2008-08-06T15:45:38Z

> Date: Wed, 6 Aug 2008 11:27:36 -0400
> From: Daniel Jacobowitz <drow@false.org>
>
> On Wed, Aug 06, 2008 at 07:19:26PM +0400, Sergei Poselenov wrote:
> > (gdb) bt
> > #0 0x4004ec0c in raise () from /lib/libc.so.6
> > #1 0x40050234 in abort () from /lib/libc.so.6
> > Backtrace stopped: frame did not save the PC
>
> Your implementation of abort does not save a return address, so GDB
> can't display it. I believe tehis is a known limitation of the ARM
> GCC port.

GCC should really not do this. People are almost guaranteed to want
to be able to see a backtrace from abort(3).

I suppose it optimizes away the instructions to save the return
address, because abort() is marked with __attribute__(noreturn). But
that means there is very little point in actually doing that
optimization since __attribute__(noreturn) implies that the function
will only be called once! I suppose there are some space savings but
are they really significant?