[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnats/439: dlerror returns junk string
From: |
Ken . Shirriff |
Subject: |
gnats/439: dlerror returns junk string |
Date: |
Tue, 26 Nov 2002 21:02:54 -0500 |
>Number: 439
>Notify-List:
>Category: gnats
>Synopsis: dlerror returns junk string
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Nov 26 21:02:54 -0500 2002
>Originator: Ken Shirriff
>Release: glibc-devel-2.2.4-24
>Organization:
>Environment:
Red Hat 7.2 OS installation on i386
# uname -a
Linux scam2.eng.sun.com 2.4.9-31enterprise #1 SMP vie jun 7 12:56:14 PDT 2002
i686 unknown
glibc-devel-2.2.4-24
glibc-2.2.4-24
>Description:
I have a simple program:
p = dlopen("./dlpi", RTLD_LAZY);
if (p == 0) {
fprintf(stderr, "%s\n", dlerror());
}
Most files passed to dlopen work okay, but this particular
file causes dlerror to return random garbage:
8@8@H@H@P@P@X@X@`@`@h@h@p@p@x@x@@@@@@@@@ @
@¨@¨@°@°@¸@¸@À@À@È@È@Ð@Ð@Ø@Ø@à@à@è@è@ð@ð@ø@ø@: shared object not open
The shared objects I'm opening are fairly large, but I can
send it on request.
If I do setenv LD_DEBUG "libs files", I don't see any
obvious problems before the problem happens
...
24771: file=/lib/libpthread.so.0; needed by ./cl_comm (relocation dependency)
24771:
24771:
24771: closing file=/lib/libpthread.so.0; opencount == 3
24771:
24771: closing file=/lib/libpthread.so.0; opencount == 2
8@8@H@H@P@P@X@X@`@`@h@h@p@p@x@x@@@@@@@@@ @
@¨@¨@°@°@¸@¸@À@À@È@È@Ð@Ð@Ø@Ø@à@à@è@è@ð@ð@ø@ø@: shared object not open
Here's the relevant ldd output:
>ldd dlpi
libpthread.so.0 => /lib/libpthread.so.0 (0x40021000)
cl_runtime => ./cl_runtime (0x40038000)
cl_comm => ./cl_comm (0x4004b000)
libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3
(0x4058d000)
libm.so.6 => /lib/libm.so.6 (0x405d0000)
libc.so.6 => /lib/libc.so.6 (0x405f2000)
libnsl.so.1 => /lib/libnsl.so.1 (0x40728000)
librt.so.1 => /lib/librt.so.1 (0x4073f000)
libdl.so.2 => /lib/libdl.so.2 (0x40751000)
libmd5.so.0 => /usr/lib/libmd5.so.0 (0x40755000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
libz.so.1 => /usr/lib/libz.so.1 (0x40759000)
> ldd cl_comm
libnsl.so.1 => /lib/libnsl.so.1 (0x40543000)
libdl.so.2 => /lib/libdl.so.2 (0x4055a000)
libmd5.so.0 => /usr/lib/libmd5.so.0 (0x4055e000)
cl_runtime => ./cl_runtime (0x40561000)
libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3
(0x40575000)
libm.so.6 => /lib/libm.so.6 (0x405b7000)
libc.so.6 => /lib/libc.so.6 (0x405d9000)
libz.so.1 => /usr/lib/libz.so.1 (0x4070f000)
libpthread.so.0 => /lib/libpthread.so.0 (0x4071d000)
librt.so.1 => /lib/librt.so.1 (0x40734000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
> ldd cl_runtime
libnsl.so.1 => /lib/libnsl.so.1 (0x40014000)
libpthread.so.0 => /lib/libpthread.so.0 (0x4002b000)
librt.so.1 => /lib/librt.so.1 (0x40042000)
libdl.so.2 => /lib/libdl.so.2 (0x40054000)
libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3
(0x40059000)
libm.so.6 => /lib/libm.so.6 (0x4009b000)
libc.so.6 => /lib/libc.so.6 (0x400bd000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
(The underlying problem is that dlopen is failing, and
I don't know how to resolve that, but without a useful
error message from dlerror, I'm blocked.)
I haven't used the GNATS bug reporter before, so apologies
in advance for my errors in usage.
>How-To-Repeat:
>Fix:
Unknown
>Unformatted:
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnats/439: dlerror returns junk string,
Ken . Shirriff <=