diff options
author | Daniel Jacobowitz <drow@false.org> | 2005-05-09 03:36:10 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2005-05-09 03:36:10 +0000 |
commit | 979b38e00bbe3fd6498b24e55edbeb14c4150bd1 (patch) | |
tree | 02b17f6da0ab4c3e1ff1a0104d2d0f5b87fd4e8a | |
parent | 0560d0f70c85c47dad453171c128c322a099a9fa (diff) | |
download | ppe42-binutils-979b38e00bbe3fd6498b24e55edbeb14c4150bd1.tar.gz ppe42-binutils-979b38e00bbe3fd6498b24e55edbeb14c4150bd1.zip |
* mips-tdep.c (mips_stub_frame_sniffer): Handle .MIPS.stubs
section like .plt.
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/mips-tdep.c | 14 |
2 files changed, 17 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 44bb111c5c..090b5c815f 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 803883721b..73125b3e33 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 |