This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
PA64 shared library problems with gdb-5.2 (hpux)
- From: ross dot alexander at uk dot neceur dot com
- To: gdb at sources dot redhat dot com, binutils at sources dot redhat dot com
- Date: Fri, 12 Jul 2002 11:20:09 +0100
- Subject: PA64 shared library problems with gdb-5.2 (hpux)
I'm trying to debug PA64 program with relies on shared libraries.
I keep getting problems with pa64_solib_add. I have created a simple
program with uses dlopen to show the problem.
#include <stdlib.h>
#include <stdio.h>
#include <dlfcn.h>
int main(int argc, char *argv[])
{
void *v;
int i, count;
void **handle;
if (argc < 2)
{
printf("%s: <filename>\n", argv[0]);
}
handle = calloc(sizeof(void*), argc);
for (i = 1; i < argc; i++)
{
if ((handle[count] = dlopen(argv[i], RTLD_GLOBAL|RTLD_NOW)) == NULL)
printf("dlopen: %s\n", dlerror());
else
count++;
}
struct load_module_desc mod;
for (i = -1; ; i++)
{
if (dlget(i, &mod, sizeof(mod)))
{
char *name = dlgetname(&mod, sizeof(mod), NULL, 0, 0);
printf("Have index %d %s\n", i, name ? name : "<No name>");
}
else
break;
}
printf("\n");
for (i = 1; ; i++)
{
if (dlgetmodinfo(i, &mod, sizeof(mod), NULL, 0, 0)
{
char *name = dlgetname(&mod, sizeof(mod), NULL, 0, 0);
printf("Have index %d %s\n", i, name ? name : "<No name>");
}
else
break;
}
for (i = 0; i < count; i++)
dlclose(handle[i]);
return 0;
}
./dltest /usr/lib/pa20_64/libm.2
Have index -1 /usr/lib/pa20_64/dld.sl
Have index 0 ./dltest
Have index 1 /lib/pa20_64/libdl.1
Have index 2 /lib/pa20_64/libc.2
Have index 3 /usr/lib/pa20_64/libm.2
Have index 1 /lib/pa20_64/libdl.1
Have index 2 /lib/pa20_64/libc.2
Have index 3 /usr/lib/pa20_64/libm.2
GNU gdb 5.2
Copyright 2002 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 "hppa64-hp-hpux11.00"...
(gdb) run /usr/pa20_64/libm.2
Starting program: /home/ralexand/dltest/dltest /usr/pa20_64/libm.2
dlopen: Unable to find library '/usr/pa20_64/libm.2'.
Have index -1 /usr/lib/pa20_64/dld.sl
Have index 0 /home/ralexand/dltest/dltest
Have index 1 /lib/pa20_64/libdl.1
Have index 2 /lib/pa20_64/libc.2
Have index 1 /lib/pa20_64/libdl.1
Have index 2 /lib/pa20_64/libc.2
Program exited normally.
(gdb) run /usr/lib/pa20_64/libm.2
Starting program: /home/ralexand/dltest/dltest /usr/lib/pa20_64/libm.2
pa64_solib_add, unable to read shared library path.
(gdb) cont
Continuing.
pa64_solib_add, unable to read shared library path.
(gdb)
Continuing.
Have index -1 /usr/lib/pa20_64/dld.sl
Have index 0 /home/ralexand/dltest/dltest
Have index 1 /lib/pa20_64/libdl.1
Have index 2 /lib/pa20_64/libc.2
Have index 3 /usr/lib/pa20_64/libm.2
Have index 1 /lib/pa20_64/libdl.1
Have index 2 /lib/pa20_64/libc.2
Have index 3 /usr/lib/pa20_64/libm.2
Program exited normally.
(gdb) quit
I'm also getting some "found in psymtab but not in symtab" errors, but
they are very difficult to duplicate. I noticed a while back H.J Lu was
reporting something very similar. One thing at a time though.
Cheers,
Ross
---------------------------------------------------------------------------------
Ross Alexander "He knows no more about his
MIS - NEC Europe Limited destiny than a tea leaf knows
Work ph: +44 20 8752 3394 the history of East India Company"