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 debugging threads help


Also I tried a c in the gdb and I get this errors:

(gdb) c
Continuing.
Error while mapping shared library sections:
/lib/libc.so.0: No such file or directory.
Error while mapping shared library sections:
/lib/libpthread.so.0: No such file or directory.
Error while mapping shared library sections:
/lib/ld-uClibc.so.0: No such file or directory.
Error while reading shared library symbols:
/lib/libc.so.0: No such file or directory.
Error while reading shared library symbols:
/lib/ld-uClibc.so.0: No such file or directory.

Program exited normally.
(gdb) quit

so even when this libraries are in the target file system I am debugging
remote from my host so on my host these libraries do not exist
under /lib instead they are under target/fs/lib.


> > > on the target:
> > > # gdbserver :5234 simple
> > 
> > Is gdbserver linked to libthread_db?  Check the build log, or check the
> > gdbserver binary.
> 
> I check the config.log and I have this errors when checking for the
> thread_db library:
> 
> configure:1510: checking for libthread_db
> configure:1531: gcc -o conftest -g -O2   conftest.c  -lthread_db 1>&5
> configure:1596: gcc -o conftest -g -O2   -rdynamic conftest.c
> -lthread_db 1>&5
> /usr/lib/gcc/i486-linux-gnu/3.4.5/../../../../lib/libthread_db.so:
> undefined reference to `ps_pdwrite'
> /usr/lib/gcc/i486-linux-gnu/3.4.5/../../../../lib/libthread_db.so:
> undefined reference to `ps_pglobal_lookup'
> /usr/lib/gcc/i486-linux-gnu/3.4.5/../../../../lib/libthread_db.so:
> undefined reference to `ps_lsetfpregs'
> /usr/lib/gcc/i486-linux-gnu/3.4.5/../../../../lib/libthread_db.so:
> undefined reference to `ps_getpid'
> /usr/lib/gcc/i486-linux-gnu/3.4.5/../../../../lib/libthread_db.so:
> undefined reference to `ps_lsetregs'
> /usr/lib/gcc/i486-linux-gnu/3.4.5/../../../../lib/libthread_db.so:
> undefined reference to `ps_pdread'
> /usr/lib/gcc/i486-linux-gnu/3.4.5/../../../../lib/libthread_db.so:
> undefined reference to `ps_lgetfpregs'
> /usr/lib/gcc/i486-linux-gnu/3.4.5/../../../../lib/libthread_db.so:
> undefined reference to `ps_lgetregs'
> collect2: ld returned 1 exit status
> configure: failed program was:
> #line 1589 "configure"
> #include "confdefs.h"
> 
> 
> I see that is wrong that looks for the thread_db library in my host
> libs, it should look in the target libs, so I add the param
> --libdir=/target/libs to the configure and now the config.log doesn't
> say any error about thread_db library and I can compile gdbserver fine.
> 
> Which command can I use to see if it is linked against the correct
> thread_db library?? I use a nm -D gdbserver but all I see are the
> symbols from the dynamic libraries not the libraries.
> 
> .....
> 0000eeec T target_signal_to_name
> 0000ee90 T target_signal_to_string
>          U tcgetattr
>          U tcsetattr
>          U tcsetpgrp
>          U td_symbol_list
>          U td_ta_event_addr
>          U td_ta_event_getmsg
>          U td_ta_new
>          U td_ta_set_event
>          U td_ta_thr_iter
>          U td_thr_event_enable
>          U td_thr_get_info
> 0001f42c D the_low_target
> 00020784 B the_target
> 00014664 T thread_db_init
> 00020690 B thread_from_wait
> ......
> 
> Now I get a different error from gdb:
> 
> on the target:
> 
> # gdbserver :5234 simple
> Process simple created; pid = 41
> Listening on port 5234
> 
> 
> on the host:
> 
> GNU gdb 6.3
> Copyright 2004 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you
> are
> welcome to change it and/or distribute copies of it under certain
> conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for
> details.
> This GDB was configured as "--host=i686-linux --target=arm-linux".
> (gdb) set solib-absolute-prefix /lib
> (gdb) file simple
> Reading symbols
> from /home/trivas/dm320-appro/fs/examples/threads/simple...done.
> (gdb) target remote 192.168.200.199:5234
> Remote debugging using 192.168.200.199:5234
> 0x40000c60 in ?? ()
> warning: Unable to find dynamic linker breakpoint function.
> GDB will be unable to debug shared library initializers
> and track explicitly loaded dynamic code.
> (gdb) info shared
> No shared libraries loaded at this time.
> (gdb)
> 
> 
> > > (gdb) set solib-absolute-prefix /target/arm-linux/lib
> > 
> > That's probably not right.  The paths below solib-absolute-prefix
> > should match the target filesystem.  So if solib-absolute-prefix
> > is "/target/arm-linux", then the target /lib/ld-linux.so.2 should be in
> > /target/arm-linux/lib/ld-linux.so.2.
> > 
> > > (gdb) set solib-search-path /target/arm-linux/lib
> > 
> > You should not need to set that.
> > 
> > > (gdb) dir /target/arm-linux/lib
> > 
> > Or this.
> > 
> > > Source directories searched: /target/arm-linux/lib:$cdir:$cwd
> > > (gdb) set endian little
> > > The target is assumed to be little endian
> > 
> > Or this.
> > 
> > > (gdb) handle SIG32 nostop noprint pass
> > > Signal        Stop      Print   Pass to program Description
> > > SIG32         No        No      Yes             Real-time event 32
> > 
> > Don't do that; it never helps.
> > 
> > > (gdb) add-symbol-file simple
> > > add symbol table from file "simple" at
> > > (y or n) y
> > > Reading symbols
> > > from /home/trivas/dm320-appro/fs/examples/threads/simple...done.
> > 
> > Don't do this either.  Use "file simple", and do it before issuing the
> > "target remote" command.
> > 
> > > and if I try a info shared it says "No shared libraries loaded at this
> > > time"
> > 
> > Thread debugging will not work until this works.  It should show you
> > the list of libraries and say that they have symbols loaded (at main,
> > not when you first connect).
> > 
-- 
Teresa R. Rivas
teresa.rivas@cadenux.com
Cadenux, LLC


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