wrong backtrace / __JCR_LIST__ instead of real function name

Kremer Markus (MPI/SFR) Markus.Kremer@tenovis.com
Tue Oct 21 11:05:00 GMT 2003


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__ ()
#2  0x0804ca76 in acom (fd=16, text=0x8062704 "ABCDEABCDE", len=10,
timeout=3)
    at
/net/fr145117/tux_snv/choral.km82fr.linux-snv/vobs/choral/software/RemoteV24
/src/handler_acom.c:182
#3  0x0804cc92 in acom_loop (arg=0x80627b0)
    at
/net/fr145117/tux_snv/choral.km82fr.linux-snv/vobs/choral/software/RemoteV24
/src/handler_acom.c:282
#4  0x08053ff3 in wrapper_routine (data=0xbfffe8d0)
    at
/net/fr145117/tux_snv/choral.km82fr.linux-snv/vobs/choral/software/RemoteV24
/src/mytools.c:1051
#5  0x400ccba3 in pthread_start_thread () from
//app/i33tools/gcc/gcc-3.2c/i386-linux/lib/libpthread.so.0
#6  0x400cd66e in pthread_start_thread_event () from
//app/i33tools/gcc/gcc-3.2c/i386-linux/lib/libpthread.so.0
(gdb) up
#1  0x0805e9cc in __JCR_LIST__ ()
(gdb) up
#2  0x0804ca76 in acom (fd=16, text=0x8062704 "ABCDEABCDE", len=10,
timeout=3)
    at
/net/fr145117/tux_snv/choral.km82fr.linux-snv/vobs/choral/software/RemoteV24
/src/handler_acom.c:182
182                 r = acom_read (fd, timeout);
(gdb) list
177                     acom_send (fd, text, len);
178                     s = state_repeat1;
179                 };
180                 break;
181             case state_repeat1:
182                 r = acom_read (fd, timeout);
183                 if (r == ACK)
184                 {
185                     result = V24_OK;
186                     s = state_end;
(gdb) p acom_read
$1 = {char (int, int)} 0x804c850 <acom_read>

best regards 
Markus



More information about the Gdb mailing list