This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Problem reading corefiles on ARM


> 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?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]