This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils 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: PA64 shared library problems with gdb-5.2 (hpux)


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








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