This is the mail archive of the gdb@sources.redhat.com 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: wrong backtrace / __JCR_LIST__ instead of real function name


On Tue, Oct 21, 2003 at 01:05:34PM +0200, Kremer Markus (MPI/SFR) wrote:
> Hello,
> i am using gcc 3.2 and gdb 5.3.
> One thread of my programm calls
> pthread_start_thread->wrapper_routine->acom_loop->acom->acom_read->select.
> 
> When i debug my application i get strange backtraces.
> instead of acom_read() __JCR_LIST__() is displayed in frame #1.
> 
> I had similar problems at other places in my code.
> When i used gcc 2.9x and gdb 5.2 i had the same problems.
> 
> Any clues what went wrong?
> ....
> pressing CTRL-C
> ....
> Program received signal SIGINT, Interrupt.
> [Switching to Thread 3076 (LWP 26480)]
> 0x401ad6ae in select () from
> //app/i33tools/gcc/gcc-3.2c/i386-linux/lib/libc.so.6
> (gdb) bt
> #0  0x401ad6ae in select () from
> //app/i33tools/gcc/gcc-3.2c/i386-linux/lib/libc.so.6
> #1  0x0805e9cc in __JCR_LIST__ ()

This means GDB couldn't figure out how to backtrace from select.  It's
an assembly wrapper, so it's hard to manually figure out the frame
location.

Recent versions of gdb and binutils support annotating assembly
functions to describe the backtrace.  Most libc functions will
eventually be annotated, since NPTL uses this information also.

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer


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