From f2ec0ecff63269d4a88bdca4d244fbae925de740 Mon Sep 17 00:00:00 2001 From: Joel Brobecker <brobecker@gnat.com> Date: Sat, 9 Jan 2010 04:38:29 +0000 Subject: * mips-tdep.c (mips_breakpoint_from_pc): Add new static variable containing the correct breakpoint instruction to use on mips-irix. Use it when the osabi is GDB_OSABI_IRIX. --- gdb/ChangeLog | 7 +++++++ gdb/mips-tdep.c | 5 +++++ 2 files changed, 12 insertions(+) (limited to 'gdb') diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f562851..b7fb8ce 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,12 @@ 2010-01-09 Joel Brobecker <brobecker@adacore.com> + Use the correct breakpoint instruction on mips-irix. + * mips-tdep.c (mips_breakpoint_from_pc): Add new static variable + containing the correct breakpoint instruction to use on mips-irix. + Use it when the osabi is GDB_OSABI_IRIX. + +2010-01-09 Joel Brobecker <brobecker@adacore.com> + -Wunused warning in procfs.c (mips-irix only). * procfs.c (gdb_praddset, gdb_prdelset): New macros. Use them throughout instead of using praddset and prdelset respectively. diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c index 2748805..92fcd4a 100644 --- a/gdb/mips-tdep.c +++ b/gdb/mips-tdep.c @@ -5045,6 +5045,9 @@ mips_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenptr) static gdb_byte big_breakpoint[] = { 0, 0x5, 0, 0xd }; static gdb_byte pmon_big_breakpoint[] = { 0, 0, 0, 0xd }; static gdb_byte idt_big_breakpoint[] = { 0, 0, 0x0a, 0xd }; + /* Likewise, IRIX appears to expect a different breakpoint, + although this is not apparent until you try to use pthreads. */ + static gdb_byte irix_big_breakpoint[] = { 0, 0, 0, 0xd }; *lenptr = sizeof (big_breakpoint); @@ -5054,6 +5057,8 @@ mips_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenptr) || strcmp (target_shortname, "pmon") == 0 || strcmp (target_shortname, "lsi") == 0) return pmon_big_breakpoint; + else if (gdbarch_osabi (gdbarch) == GDB_OSABI_IRIX) + return irix_big_breakpoint; else return big_breakpoint; } -- cgit v1.1