diff options
-rw-r--r-- | gdb/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/mips-tdep.c | 10 |
2 files changed, 14 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 9ec6c70..b175619 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2007-03-07 Joel Brobecker <brobecker@adacore.com> + + * mips-tdep.c (mips_insn16_frame_cache, mips_insn32_frame_sniffer): + Revert the previous change that had some unexpected side-effects + on mips32. + (mips_insn16_frame_cache, mips_insn32_frame_cache): Use the proper + function to get the address of the calling instruction. + 2007-03-07 Denis Pilat <denis.pilat@st.com> * tui/tui-hooks.c (tui_selected_frame_level_changed_hook): Replace diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c index c8e958a..3a5e49b 100644 --- a/gdb/mips-tdep.c +++ b/gdb/mips-tdep.c @@ -1640,7 +1640,8 @@ mips_insn16_frame_cache (struct frame_info *next_frame, void **this_cache) /* Analyze the function prologue. */ { - const CORE_ADDR pc = frame_pc_unwind (next_frame); + const CORE_ADDR pc = + frame_unwind_address_in_block (next_frame, NORMAL_FRAME); CORE_ADDR start_addr; find_pc_partial_function (pc, NULL, &start_addr, NULL); @@ -1693,7 +1694,7 @@ static const struct frame_unwind mips_insn16_frame_unwind = static const struct frame_unwind * mips_insn16_frame_sniffer (struct frame_info *next_frame) { - CORE_ADDR pc = frame_unwind_address_in_block (next_frame, NORMAL_FRAME); + CORE_ADDR pc = frame_pc_unwind (next_frame); if (mips_pc_is_mips16 (pc)) return &mips_insn16_frame_unwind; return NULL; @@ -1961,7 +1962,8 @@ mips_insn32_frame_cache (struct frame_info *next_frame, void **this_cache) /* Analyze the function prologue. */ { - const CORE_ADDR pc = frame_pc_unwind (next_frame); + const CORE_ADDR pc = + frame_unwind_address_in_block (next_frame, NORMAL_FRAME); CORE_ADDR start_addr; find_pc_partial_function (pc, NULL, &start_addr, NULL); @@ -2014,7 +2016,7 @@ static const struct frame_unwind mips_insn32_frame_unwind = static const struct frame_unwind * mips_insn32_frame_sniffer (struct frame_info *next_frame) { - CORE_ADDR pc = frame_unwind_address_in_block (next_frame, NORMAL_FRAME); + CORE_ADDR pc = frame_pc_unwind (next_frame); if (! mips_pc_is_mips16 (pc)) return &mips_insn32_frame_unwind; return NULL; |