Re: Overlay support broken (Re: [patch] [2/2] Discontiguous PSYMTABs (psymtabs->symtabs by addrmap))

Jan Kratochvil
2008-05-15T10:11:39Z

On Tue, 13 May 2008 19:00:48 +0200, Ulrich Weigand wrote:
...
> Which parts of GDB do you think do not support overlays? I'd be interested
> in fixing such problems ...

There is still a lot of stub functions X() just calling X_sect() using
find_pc_mapped_section(), these should get removed as otherwise one may find
a countercase where it fails for the overlayed sections.
[blockvector_for_pc, block_for_pc, find_pc_psymtab, find_pc_psymbol,
find_pc_symtab, find_pc_section, find_pc_function]

> For now, I'm using the patch below that simply falls back to the non-addrmap
> case when debugging overlays and the addrmap returned the wrong section.

I started coding a similiar patch as IMO the overlayed sections have no use for
addrmap as they are not discontiguous, thanks for fixing it up this way.

...
> If there is no objection, I'd like to commit this to fix the present
> regression

> until we have a proper implementation of addrmaps for the overlay case.

It is not worth it as it would mean to either
* support multiple results from a single call of addrmap_find()
or
* to move `addrmap_find' from `struct objfile' to each `struct partial_symtab'
which is IMO not worth the performance in a general case as your patch only
stays at the same performance as before addrmap for the overlayed case.

Regards,
Jan