MIPS 64 bit addressing query

David Daney ddaney@avtrex.com
Mon Aug 6 01:20:00 GMT 2007


Vinod pandarinathan wrote:
> Hi Experts,
>
>
> I found that gdb6.4.1 is sign extending the
> PC before comparing it to the breakpoint address[bpt->address].
>
> Sign extension happens in mips-tdep.c
>
> /* MIPS believes that the PC has a sign extended value.  Perhaps the
>    all registers should be sign extended for simplicity? */
>
> static CORE_ADDR
> mips_read_pc (ptid_t ptid)
> {
>   return read_signed_register_pid (mips_regnum (current_gdbarch)->pc, ptid);
> }
> The target suspends at the breakpoint, but the debugger is not able to
> identify the associated breakpoint as [unsigned value is compared to a
> 64 bit sign extended value].
>
> We are using MIPS 3 ISA and since breakpoint is set at an address
> where the 32nd bit is set to 1 the 64 bit sign extended values does
> not compare with the unsigned
> break point address.
>
> Can you please explain how we can fix the problem? Should I sign
> extend the break point address too ?
>   
I am running gdb-6.6 on mips64-linux (All of n32, n64 and o32 ABIs) with 
no apparent problems.

Perhaps you should upgrade.

David Daney



More information about the Gdb mailing list