This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


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

Re: [RFA] osfsolib.c: support Tru64 5.x


On May 14,  9:44pm, Nick Duffek wrote:

> >Is there any chance that osfsolib.c could be reworked into a solib.c
> >backend?
> 
> Okay, I've just finished doing that.  It's nice to delete so much
> duplicated code; the new file is 60% the size of the old one.

Very cool.  Thanks for doing this.

> Is there any pending gdbint.texinfo documentation on how to implement
> shared library support using solib.c?  If not, I volunteer to write a
> brief explanation, while it's fresh in my mind.

I have nothing planned.  I think it'd be great if you'd write up the
documentation.

> I ran into a couple of problems:
> 
> 1. It's necessary for the target_so_ops.current_sos callback to zero at
> least the so_list.section field of each element it returns.  Otherwise,
> solib_map_sections() passes a bogus pointer to build_section_table(),
> which frees the bogus pointer.
> 
> What do you think about a patch like this?
> 
> Index: gdb/solist.h
> ===================================================================
> diff -up gdb/solist.h gdb/solist.h
> --- gdb/solist.h	Mon May 14 21:17:56 2001
> +++ gdb/solist.h	Mon May 14 21:17:46 2001
> @@ -52,7 +52,9 @@ struct so_list
>  
>      /* The following fields of the structure are built from
>         information gathered from the shared object file itself, and
> -       are initialized when we actually add it to our symbol tables.  */
> +       are set when we actually add it to our symbol tables.
> +
> +       current_sos must initialize these fields to 0.  */
>  
>      bfd *abfd;
>      char symbols_loaded;	/* flag: symbols read in yet? */

Good catch.  Please check this in.

> 2. Because Tru64 doesn't use ELF binaries, "info sharedlibrary"
> incorrectly infers the address size to be 32 bits, so output address
> fields are too narrow:
> 
>   (gdb) inf shared
>   From        To          Syms Read   Shared Object Library
>   0x3ff800cd8100x3ff801ca290Yes         /usr/shlib/libc.so
>   (gdb) 
> 
> Some possible fixes:
>   (a) Default to 64 instead of 32 bits.
>   (b) Use something like bfd_arch_bits_per_address(exec_bfd) instead of
>       or in addition to bfd_get_arch_size (exec_bfd).

Option (b) sounds better to me.

> I'll post the new osfsolib.c patch as soon as I finish regression-testing
> it.

Cool.  I'm looking forward to seeing it.

Thanks,

Kevin


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