This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: MIPS 64 bit addressing query


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]