Re: gdb 6.x 'next' does not work on mips-linux/mipsel-linux

Daniel Jacobowitz
2005-05-09T03:36:38Z

On Mon, May 09, 2005 at 12:16:35PM +0900, Atsushi Nemoto wrote:
> >>>>> On Wed, 27 Apr 2005 10:17:14 -0400, Daniel Jacobowitz <drow@false.org> said:
> drow> 2005-04-27 Daniel Jacobowitz <dan@codesourcery.com>
>
> drow> * mips-tdep.c (mips_stub_frame_sniffer): Handle .MIPS.stubs
> drow> section like .plt.
>
> This fix still not be checked in. Is there any problem with this
> patch?

None; I forgot about it! Sorry.

I have checked in the attached.

--
Daniel Jacobowitz
CodeSourcery, LLC

2005-05-08 Daniel Jacobowitz <dan@codesourcery.com>

* mips-tdep.c (mips_stub_frame_sniffer): Handle .MIPS.stubs
section like .plt.

Index: mips-tdep.c
===================================================================
RCS file: /big/fsf/rsync/src-cvs/src/gdb/mips-tdep.c,v
retrieving revision 1.379
diff -u -p -r1.379 mips-tdep.c
--- mips-tdep.c 17 Mar 2005 18:07:46 -0000 1.379
+++ mips-tdep.c 27 Apr 2005 14:12:21 -0000
@@ -2091,11 +2091,21 @@ static const struct frame_unwind mips_st
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