RFA: [buildsym.c] Turn off unused addr bits in linetable

Andrew Cagney ac131313@cygnus.com
Thu Mar 15 17:58:00 GMT 2001

Fernando Nasser wrote:
> Andrew,
> I looked at all the targets that define ADDR_BITS_REMOVE() (which are
> arm, h8500, m88k, mips, pa, w65, z8k and sh) and all that define
> BREAKPOINT_FROM_PC() (which are arm, mips, mcore and mn10300, as far as
> I can tell).
> I am convinced that this is the right thing to do.  I really wonder, in
> some cases, how could it have worked without it (maybe the stub or the
> OS cleared the bits for us).

I suspect that it is like the 32 bit MIPS - no one was sure how it
should work.  Only when the decision that the 32 bit MIPS was have all
addresses converted to cannonical form (i.e. sign extend them) did a
heap of problems get flushed.

I'd lace your patch with comments explaining how the table contains
cannonical addresses and those addresses don't contain any stray magic
bits.  That way the next person will know where the error is when they
find a comparison is doing strange things because the addresses don't
quite match.

> Anyway, there is only one way of knowing it for sure.  The only thing we
> know right now is that ARM is broken without it.
> OK to commit?

I withdraw my objection.  I think the maintainer had already approved

Thanks for investigating this!


PS: A multi-arch footnote (Hi nick :-):  At some stage or another, an
additional interface into BFD is going to be needed so that GDB can ask
BFD what the architecture/machine tupple for a given address is. 
Details are for much later.  This is just a little flag :-)

More information about the Gdb-patches mailing list