PA64 shared library problems with gdb-5.2 (hpux)
ross.alexander@uk.neceur.com
ross.alexander@uk.neceur.com
Tue Aug 13 09:12:00 GMT 2002
I have a rinky-dinky test program which works fine.
#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;
}
for example
ralexand@styx 16:40:33 $./dltest /opt/gtk+-2.0/lib/libgtk-x11-2.0.sl
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 /opt/gtk+-2.0/lib/libgtk-x11-2.0.sl
Have index 4 /opt/gtk+-2.0/lib/libgdk_pixbuf-2.0.sl.0
Have index 5 /opt/gtk+-2.0/lib/libgdk-x11-2.0.sl.0
Have index 6 /opt/gtk+-2.0/lib/libpangox-1.0.sl.0
Have index 7 /opt/gtk+-2.0/lib/libpango-1.0.sl.0
Have index 8 /opt/gtk+-2.0/lib/libatk-1.0.sl.0
Have index 9 /opt/gtk+-2.0/lib/libgobject-2.0.sl.0
Have index 10 /opt/gtk+-2.0/lib/libgmodule-2.0.sl.0
Have index 11 /opt/gtk+-2.0/lib/libglib-2.0.sl.0
Have index 12 /lib/pa20_64/libm.2
Have index 13 /opt/dev64/lib/libintl.sl.2
Have index 14 /opt/dev64/lib/libiconv.sl.3
Have index 15 /opt/dev64/lib/libXext.sl.6.4
Have index 16 /opt/dev64/lib/libX11.sl.6.1
Have index 1 /lib/pa20_64/libdl.1
Have index 2 /lib/pa20_64/libc.2
Have index 3 /opt/gtk+-2.0/lib/libgtk-x11-2.0.sl
Have index 4 /opt/gtk+-2.0/lib/libgdk_pixbuf-2.0.sl.0
Have index 5 /opt/gtk+-2.0/lib/libgdk-x11-2.0.sl.0
Have index 6 /opt/gtk+-2.0/lib/libpangox-1.0.sl.0
Have index 7 /opt/gtk+-2.0/lib/libpango-1.0.sl.0
Have index 8 /opt/gtk+-2.0/lib/libatk-1.0.sl.0
Have index 9 /opt/gtk+-2.0/lib/libgobject-2.0.sl.0
Have index 10 /opt/gtk+-2.0/lib/libgmodule-2.0.sl.0
Have index 11 /opt/gtk+-2.0/lib/libglib-2.0.sl.0
Have index 12 /lib/pa20_64/libm.2
Have index 13 /opt/dev64/lib/libintl.sl.2
Have index 14 /opt/dev64/lib/libiconv.sl.3
Have index 15 /opt/dev64/lib/libXext.sl.6.4
Have index 16 /opt/dev64/lib/libX11.sl.6.1
So it is something to do with the interaction with gdb's copy function.
The problem is I simply don't know enough about gdb internals
to start. I might try to cross build a 64bit version of gdb as a
32bit SOM exe, so I could then run that under a 32bit gdb,
but I'm not sure if that will actually work.
Many thanks
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"
Jeff Law
<law@porcupine.slc. To: ross.alexander@uk.neceur.com
redhat.com> cc: gdb@sources.redhat.com, binutils@sources.redhat.com
Subject: Re: PA64 shared library problems with gdb-5.2 (hpux)
12/08/2002 19:20
Please respond to
law
In message <OF35E93CD6.ADFC4642-ON80256BF4.0033D184@uk.neceur.com>,
ross.alexan
der@uk.neceur.com writes:
>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.
[ ... ]
This happens when dlgetname returns an error.
Unfortunately, dlgetname is a routine provided by HP, so it may be very
difficult to figure out why it's returning an error.
It might be interesting to know which index it's choking on so that we
can try to guess which library dlgetname is unhappy about.
jeff
More information about the Gdb
mailing list