diff options
Diffstat (limited to 'gdb/ChangeLog')
-rw-r--r-- | gdb/ChangeLog | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 0dbc501..64d8391 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,151 @@ +2012-03-18 Pedro Alves <pedro@codesourcery.com> + + * frame.c (frame_unwind_register): Throw an error if unwinding the + register failed. + * get_prev_frame_1 (get_prev_frame_1): Ask the unwinder if there's + an unwind stop reason. + (frame_stop_reason_string): Handle UNWIND_UNAVAILABLE. + * frame.h (enum unwind_stop_reason) <UNWIND_OUTERMOST, + UNWIND_UNAVAILABLE>: New. + * inline-frame.c (inline_frame_unwind): Install + default_frame_unwind_stop_reason. + * frame-unwind.c: Include "exceptions.h". + (frame_unwind_find_by_frame): Swallow NOT_AVAILABLE_ERROR errors. + (default_frame_unwind_stop_reason): New. + * frame-unwind.h (frame_unwind_stop_reason_ftype): New typedef. + (default_frame_unwind_stop_reason): Declare. + (struct frame_unwind) <stop_reason>: New function pointer. + + * dummy-frame.c: Install default_frame_unwind_stop_reason. + * dwarf2-frame.c: Include exceptions.h. + (struct dwarf2_frame_cache) <unavailable_retaddr>: New field. + (dwarf2_frame_cache): Swallow NOT_AVAILABLE_ERROR errors when + computing the CFA. If such an error was thrown, set + unavailable_retaddr. + (dwarf2_frame_unwind_stop_reason): New. + (dwarf2_frame_this_id): Don't build a frame id if the CFA was + unavailable. + (dwarf2_frame_unwind): Install dwarf2_frame_unwind_stop_reason. + (dwarf2_signal_frame_unwind): Ditto. + + * amd64-tdep.c: Include "exceptions.h". + (struct amd64_frame_cache): New field "base_p". + (amd64_init_frame_cache): Clear it. + (amd64_frame_cache_1): New, factored out from amd64_frame_cache. + Avoid reading registers with functions that throw if the register + is not necessary to compute the frame base. + (amd64_frame_cache): Reimplement wrapping amd64_frame_cache_1, and + swallowing NOT_AVAILABLE_ERROR. + (amd64_frame_unwind_stop_reason): New. + (amd64_frame_this_id): Don't build a frame id if the frame base + was unavailable. + (amd64_frame_unwind): Install amd64_frame_unwind_stop_reason. + (amd64_sigtramp_frame_cache): Swallow NOT_AVAILABLE_ERROR, and set + base_p if the frame base was computable. + (amd64_sigtramp_frame_unwind_stop_reason): New. + (amd64_sigtramp_frame_this_id): Don't build a frame id if the + frame base was unavailable. + (amd64_sigtramp_frame_unwind): Install + amd64_sigtramp_frame_unwind_stop_reason. + (amd64_epilogue_frame_cache): Swallow NOT_AVAILABLE_ERROR, and set + base_p if the frame base was computable. + (amd64_epilogue_frame_unwind_stop_reason): New. + (amd64_epilogue_frame_this_id): Don't build a frame id if the + frame base was unavailable. + (amd64_epilogue_frame_unwind): Install + amd64_epilogue_frame_unwind_stop_reason. + * i386-tdep.c: Include "exceptions.h". + (struct i386_frame_cache): New field "base_p". + (i386_init_frame_cache): Clear it. + (i386_frame_cache_1): New, factored out from amd64_frame_cache. + Avoid reading registers with functions that throw if the register + is not necessary to compute the frame base. + (i386_frame_cache): Reimplement wrapping amd64_frame_cache_1, and + swallowing NOT_AVAILABLE_ERROR. + (i386_frame_unwind_stop_reason): New. + (i386_frame_this_id): Don't build a frame id if the frame base was + unavailable. + (i386_frame_prev_register): Handle unavailable SP. + (i386_frame_unwind): Install i386_frame_unwind_stop_reason. + (i386_epilogue_frame_cache): Swallow NOT_AVAILABLE_ERROR, and set + base_p if the frame base was computable. + (i386_epilogue_frame_unwind_stop_reason): New. + (i386_epilogue_frame_this_id): Don't build a frame id if the frame + base was unavailable. + (i386_epilogue_frame_unwind): Install + i386_epilogue_frame_unwind_stop_reason. + (i386_sigtramp_frame_cache): Swallow NOT_AVAILABLE_ERROR, and set + base_p if the frame base was computable. + (i386_sigtramp_frame_unwind_stop_reason): New. + (i386_sigtramp_frame_this_id): Don't build a frame id if the frame + base was unavailable. + (i386_sigtramp_frame_unwind): Install + i386_sigtramp_frame_unwind_stop_reason. + * sentinel-frame.c (sentinel_frame_prev_register): Use the value + type's size, not the register's. + (sentinel_frame_unwind): Install default_frame_unwind_stop_reason. + + * alpha-mdebug-tdep.c (alpha_mdebug_frame_unwind): Install + default_frame_unwind_stop_reason. + * alpha-tdep.c (alpha_sigtramp_frame_unwind) + (alpha_heuristic_frame_unwind): Ditto. + * amd64obsd-tdep.c (amd64obsd_trapframe_unwind): Ditto. + * arm-tdep.c (arm_prologue_unwind, arm_stub_unwind): Ditto. + * avr-tdep.c (avr_frame_unwind): Ditto. + * cris-tdep.c (cris_sigtramp_frame_unwind, cris_frame_unwind): + Ditto. + * frv-linux-tdep.c (frv_linux_sigtramp_frame_unwind): Ditto. + * frv-tdep.c (frv_frame_unwind): Ditto. + * h8300-tdep.c (h8300_frame_unwind): Ditto. + * hppa-hpux-tdep.c (hppa_hpux_sigtramp_frame_unwind): Ditto. + * hppa-linux-tdep.c (hppa_linux_sigtramp_frame_unwind): Ditto. + * hppa-tdep.c (hppa_frame_unwind, hppa_fallback_frame_unwind) + (hppa_stub_frame_unwind): Ditto. + * i386obsd-tdep.c (i386obsd_trapframe_unwind): Ditto. + * ia64-tdep.c (ia64_frame_unwind, ia64_sigtramp_frame_unwind) + (ia64_libunwind_frame_unwind) + (ia64_libunwind_sigtramp_frame_unwind): Ditto. + * iq2000-tdep.c (iq2000_frame_unwind): Ditto. + * lm32-tdep.c (lm32_frame_unwind): Ditto. + * m32c-tdep.c (m32c_unwind): Ditto. + * m32r-linux-tdep.c (m32r_linux_sigtramp_frame_unwind): Ditto. + * m32r-tdep.c (m32r_frame_unwind): Ditto. + * m68hc11-tdep.c (m68hc11_frame_unwind): Ditto. + * m68k-tdep.c (m68k_frame_unwind): Ditto. + * m68klinux-tdep.c (m68k_linux_sigtramp_frame_unwind): Ditto. + * m88k-tdep.c (m88k_frame_unwind): Ditto. + * mep-tdep.c (mep_frame_unwind): Ditto. + * microblaze-tdep.c (microblaze_frame_unwind): Ditto. + * mips-tdep.c (mips_insn16_frame_unwind, mips_insn32_frame_unwind) + (mips_stub_frame_unwind): Ditto. + * mn10300-tdep.c (mn10300_frame_unwind): Ditto. + * moxie-tdep.c (moxie_frame_unwind): Ditto. + * mt-tdep.c (mt_frame_unwind): Ditto. + * ppc-linux-tdep.c (ppu2spu_unwind): Ditto. + * ppcobsd-tdep.c (ppcobsd_sigtramp_frame_unwind): Ditto. + * rs6000-tdep.c (rs6000_frame_unwind): Ditto. + * s390-tdep.c (s390_frame_unwind, s390_stub_frame_unwind) + (s390_sigtramp_frame_unwind): Ditto. + * score-tdep.c (score_prologue_unwind): Ditto. + * sh-tdep.c (sh_frame_unwind): Ditto. + * sh64-tdep.c (sh64_frame_unwind): Ditto. + * sparc-sol2-tdep.c (sparc32_sol2_sigtramp_frame_unwind): Ditto. + * sparc-tdep.c (sparc32_frame_unwind): Ditto. + * sparc64-sol2-tdep.c (sparc64_sol2_sigtramp_frame_unwind): Ditto. + * sparc64-tdep.c (sparc64_frame_unwind): Ditto. + * sparc64fbsd-tdep.c (sparc64fbsd_sigtramp_frame_unwind): Ditto. + * sparc64nbsd-tdep.c (sparc64nbsd_sigcontext_frame_unwind): Ditto. + * sparc64obsd-tdep.c (sparc64obsd_frame_unwind) + (sparc64obsd_trapframe_unwind): Ditto. + * sparcnbsd-tdep.c (sparc32nbsd_sigcontext_frame_unwind): Ditto. + * sparcobsd-tdep.c (sparc32obsd_sigtramp_frame_unwind): Ditto. + * spu-tdep.c (spu_frame_unwind, spu2ppu_unwind): Ditto. + * v850-tdep.c (v850_frame_unwind): Ditto. + * vax-tdep.c (vax_frame_unwind): Ditto. + * vaxobsd-tdep.c (vaxobsd_sigtramp_frame_unwind): Ditto. + * xstormy16-tdep.c (frame_unwind xstormy16_frame_unwind): Ditto. + * xtensa-tdep.c (xtensa_unwind): Ditto. + 2011-03-18 Pedro Alves <pedro@codesourcery.com> * tui/tui-hooks.c (tui_selected_frame_level_changed_hook): Assume |