aboutsummaryrefslogtreecommitdiff
path: root/gdb/ChangeLog
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2011-03-18 18:52:32 +0000
committerPedro Alves <palves@redhat.com>2011-03-18 18:52:32 +0000
commit8fbca658f0643a6c3d5b61840351ae70e5bf2db6 (patch)
tree29aac28e10802153b6d0a1575797c7fc1f4a6146 /gdb/ChangeLog
parent8661b11b1820e3cc09a19c9ac0b195d18f2f8638 (diff)
downloadgdb-8fbca658f0643a6c3d5b61840351ae70e5bf2db6.zip
gdb-8fbca658f0643a6c3d5b61840351ae70e5bf2db6.tar.gz
gdb-8fbca658f0643a6c3d5b61840351ae70e5bf2db6.tar.bz2
gdb/
* 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.
Diffstat (limited to 'gdb/ChangeLog')
-rw-r--r--gdb/ChangeLog148
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