diff options
author | Pedro Alves <palves@redhat.com> | 2011-03-18 18:52:32 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2011-03-18 18:52:32 +0000 |
commit | 8fbca658f0643a6c3d5b61840351ae70e5bf2db6 (patch) | |
tree | 29aac28e10802153b6d0a1575797c7fc1f4a6146 /gdb/ChangeLog | |
parent | 8661b11b1820e3cc09a19c9ac0b195d18f2f8638 (diff) | |
download | gdb-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/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 |