aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/mips-tdep.c14
2 files changed, 17 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 44bb111..090b5c8 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2005-05-08 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * mips-tdep.c (mips_stub_frame_sniffer): Handle .MIPS.stubs
+ section like .plt.
+
2005-05-08 Mark Kettenis <kettenis@gnu.org>
* i386-linux-tdep.c (linux_sigtramp_code, linux_rt_sigtramp_code):
diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
index 8038837..73125b3 100644
--- a/gdb/mips-tdep.c
+++ b/gdb/mips-tdep.c
@@ -2091,11 +2091,21 @@ static const struct frame_unwind mips_stub_frame_unwind =
static const struct frame_unwind *
mips_stub_frame_sniffer (struct frame_info *next_frame)
{
+ struct obj_section *s;
CORE_ADDR pc = frame_pc_unwind (next_frame);
+
if (in_plt_section (pc, NULL))
return &mips_stub_frame_unwind;
- else
- return NULL;
+
+ /* Binutils for MIPS puts lazy resolution stubs into .MIPS.stubs. */
+ s = find_pc_section (pc);
+
+ if (s != NULL
+ && strcmp (bfd_get_section_name (s->objfile->obfd, s->the_bfd_section),
+ ".MIPS.stubs") == 0)
+ return &mips_stub_frame_unwind;
+
+ return NULL;
}
static CORE_ADDR