This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: A gdb+bfd string pool?
On Fri, Oct 31, 2003 at 10:45:43AM -0500, Andrew Cagney wrote:
> >On Fri, Oct 31, 2003 at 10:15:39AM -0500, Andrew Cagney wrote:
> >
> >>Hello,
> >>
> >>GDB, to contain its run-time size is, uses gdb/bcaches where ...
> >>/* A bcache is a data structure for factoring out duplication in
> >> read-only structures. You give the bcache some string of bytes S.
> >> If the bcache already contains a copy of S, it hands you back a
> >> pointer to its copy. Otherwise, it makes a fresh copy of S, and
> >> hands you back a pointer to that. In either case, you can throw
> >> away your copy of S, and use the bcache's.
> >>One notable feature of this mechanism is that it lets you eliminate
> >>string equality comparisons - equal bcache values implies equal strings.
> >>
> >>Now, if I'm reading the BFD elf reader correctly, elf-strtab implements
> >>a similar mechanism (But I think it is currently only used by the
> >>linker?).
> >>
> >>Should/could BFD export a string pool that GDB could use and then use
> >>that for any slurped symbol names?
> >
> >
> >Well, if so, it should go in libiberty - and in fact, is the hash table
> >in libiberty in any way unsuited to replace bcache?
>
> The interface or the implementation? The bcache interface is focused
> and simple (something that can't be said for that hash table). The
> hashtab could certainly be used in the implementation (as elf-strtab did).
So does gdb/symtab.c.
> Anyway, back to the question. Does a [global] common pool make sense
> for BFD?
Oh, you meant an _instance_, not a data structure. Sorry.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer