From 979b38e00bbe3fd6498b24e55edbeb14c4150bd1 Mon Sep 17 00:00:00 2001 From: Daniel Jacobowitz Date: Mon, 9 May 2005 03:36:10 +0000 Subject: [PATCH] * mips-tdep.c (mips_stub_frame_sniffer): Handle .MIPS.stubs section like .plt. --- gdb/ChangeLog | 5 +++++ gdb/mips-tdep.c | 14 ++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 44bb111c5cc..090b5c815f6 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2005-05-08 Daniel Jacobowitz + + * mips-tdep.c (mips_stub_frame_sniffer): Handle .MIPS.stubs + section like .plt. + 2005-05-08 Mark Kettenis * i386-linux-tdep.c (linux_sigtramp_code, linux_rt_sigtramp_code): diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c index 803883721bf..73125b3e33d 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 -- 2.30.2