This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
RE: loading shared library
- From: "Frank van Eijkelenburg" <frank dot van dot eijkelenburg at technolution dot nl>
- To: <frank dot van dot eijkelenburg at technolution dot nl>,"Gnu Debugger mailing list" <gdb at sources dot redhat dot com>
- Date: Mon, 27 Jan 2003 11:38:03 +0100
- Subject: RE: loading shared library
- Reply-to: <frank dot van dot eijkelenburg at technolution dot nl>
> Hi all,
>
> I've a linux machine with RedHat installed with linux kernel
> 2.4.7. GDB 5.3
> is running. I crosscompiled the gdbserver for an ARM platform (with linux
> 2.4.16-rmk2). when I try to debug a simple multithreaded program, I get an
> error when loading the shared libraries:
>
> (gdb) info sharedlibrary
> From To Syms Read Shared Object Library
> 0x40023020 0x4002c35c No /lib/libpthread.so.0
> 0x40054400 0x401563d0 No /lib/libc.so.6
> 0x40001e50 0x40012e80 No /lib/ld-linux.so.2
> (gdb) sharedlibrary
> Reading symbols from /lib/libpthread.so.0...done.
> Ignoring packet error, continuing...
> Loaded symbols for /lib/libpthread.so.0
> Reading symbols from /lib/libc.so.6...done.
> Error while reading shared library symbols:
> putpkt: write failed: Broken pipe.
> Reading symbols from /lib/ld-linux.so.2...done.
> Error while reading shared library symbols:
> putpkt: write failed: Broken pipe.
> putpkt: write failed: Broken pipe.
> (gdb)
>
> At the target side, I've a segmentation fault. The simple program
> is linked
> against an unstripped libpthread. This library exists at the target. The
> only possible problem in my opinion, is that gdbserver is linked against
> libthread_db which itself is compiled against libc 2.2.4 while
> the target is
> working with libc 2.1.3. Could this be a problem, or is it something else
> what causes this behaviour???
>
> Thanx,
> Frank
I found out that only libpthread is giving problems (I can load the other
two libraries without any problem). When I rename the libpthread library (in
/lib) at the HOST, gdb is giving the following error message:
(gdb) info sharedlibrary
Error while mapping shared library sections:
/lib/libpthread.so.0: No such file or directory.
>From To Syms Read Shared Object Library
No /lib/libpthread.so.0
0x40054400 0x401563d0 No /lib/libc.so.6
0x40001e50 0x40012e80 No /lib/ld-linux.so.2
(gdb) sharedlibrary
Error while reading shared library symbols:
/lib/libpthread.so.0: No such file or directory.
Reading symbols from /lib/libc.so.6...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
(gdb)
I don't understand why gdb tries to load a library from the host
(/lib/libpthread.so.0), while it needs the crosscompiled library from the
target. Or do I misunderstand something?
Frank