aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorJoel Brobecker <brobecker@gnat.com>2010-01-09 04:38:29 +0000
committerJoel Brobecker <brobecker@gnat.com>2010-01-09 04:38:29 +0000
commitf2ec0ecff63269d4a88bdca4d244fbae925de740 (patch)
treecdd9c721bf0822734340a05265685c4170576df2 /gdb
parent3c95f01ceee3c6d7948075eae81c125dd6dad49b (diff)
downloadgdb-f2ec0ecff63269d4a88bdca4d244fbae925de740.zip
gdb-f2ec0ecff63269d4a88bdca4d244fbae925de740.tar.gz
gdb-f2ec0ecff63269d4a88bdca4d244fbae925de740.tar.bz2
* 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.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog7
-rw-r--r--gdb/mips-tdep.c5
2 files changed, 12 insertions, 0 deletions
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;
}