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: gdb-6.5 produces infinite backtrace on ARM


On Tue, Aug 15, 2006 at 08:40:54AM -0400, Daniel Jacobowitz wrote:
> Normally you should get an ugly end of the backtrace, not an infinite
> one.  If you'd like, I can take a look at what's gone wrong.  I would
> need enough to reproduce the problem - which probably means a tarball
> including the source, compiled executable, and shared libraries which
> it uses, since this may be specific to something about your build
> environment.  If you want to do that, let me know; it's too big to post
> to the list.

Thanks a lot for the test case.  The underlying cause was that
pthread_start_thread is marked noreturn; GCC seems to have omitted
the LR register save in this case.  I thought it wouldn't do that,
but in any case, we should cope.

I know have a fairly general patch set for this problem, which
produces:

(gdb) bt
...
#4 0xxxxxxxx in pthread_start_thread () from /lib/libpthread.so.0
Backtrace stopped: frame did not save the PC
(gdb)

This isn't ideal - we could detect the pthread_start_thread function
name and stop automatically, which might be a wise addition - but it's
better than going off into the woods.

There's about 250 lines of changes involved, to one of the more
complicated parts of GDB, so I will need to go over the patches again
and post them separately.  But I'll try to make sure this is fixed
soon.

-- 
Daniel Jacobowitz
CodeSourcery


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