arm_addr_bits_remove

Pedro Alves pedro@codesourcery.com
Fri Jan 25 00:11:00 GMT 2008


Joel Brobecker wrote:
> I just ran the testsuite on hppa and mips-irix, no regression.
> It might not come as a surprise given that the patch is removing
> something that handles what amounts to incorrect debugging info,
> but it's better than nothing. In both case, we use GNU and the
> system linker.
> 

For the record:

hppa-tdep.c has this function registered as gdbarch_addr_bits_remove:

static CORE_ADDR
hppa_smash_text_address (CORE_ADDR addr)
{
   /* The low two bits of the PC on the PA contain the privilege level.
      Some genius implementing a (non-GCC) compiler apparently decided
      this means that "addresses" in a text section therefore include a
      privilege level, and thus symbol tables should contain these bits.
      This seems like a bonehead thing to do--anyway, it seems to work
      for our purposes to just ignore those bits.  */

   return (addr &= ~0x3);
}

I guess that compiler would be HP's.  If the symbols had the bits set,
so could the line info.  Do we still support HP's object format and
debug info ?

I see that the hppa port of gas has this .export pseudo that enable
the setting of a privilege level (priv_lev in c-hppa.texi).  It doesn't
seem to be covered by gdb's testsuite in testsuite/gdb.hp.

-- 
Pedro Alves



More information about the Gdb-patches mailing list