dwarf2-frame.c question for maintainers

Martin M. Hunt hunt@redhat.com
Thu Jul 15 18:54:00 GMT 2004


On Thu, 2004-07-15 at 11:35, Andrew Cagney wrote:
> >>> Consider o32.  Both the ABI and ISA are 32-bits, but GDB's CORE_ADDR may 
> >>> be 64-bits.  Even if it doesn't appear to make a difference, the MIPS 
> >>> needs to always sign extend addresses/registers - that's the dogma :-)
> > 
> > 
> > Right.  And so back to the original question.  What is the best way to
> > have read_reg detect if it should sign-extend?  We agreed that passing a
> > pointer to the CU was out, as was using a global.  Do I need to add
> > something to gdbarch?  
> 
> Hmm, the architecture vector already has POINTER_TO_ADDRESS and 
> register_type that can be used to extract [signed] pointers and 
> registers.  Can either of those be used here?

You mean something like

if (current_gdbarch->pointer_to_address == unsigned_pointer_to_address)
  return extract_unsigned_integer (buf, register_size (current_gdbarch, regnum));
else
  return extract_signed_integer (buf, register_size (current_gdbarch, regnum));

-- 
Martin M. Hunt <hunt@redhat.com>
Red Hat Inc.



More information about the Gdb mailing list