undefined newexpr->gdbarch field in ada-lang.c:replace_operator_with_call
[deliverable/binutils-gdb.git] / gdb / ChangeLog
index c9469da0df6dcf83aeddc90f93c00d6e85e18db6..e532ef8238da8c51e12f36a14528ba61f401a421 100644 (file)
@@ -1,3 +1,277 @@
+2012-03-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       * ada-lang.c (replace_operator_with_call): Copy also GDBARCH.
+
+2012-03-21  Joel Brobecker  <brobecker@adacore.com>
+
+       * ada-lang.c (replace_operator_with_call): Use xzalloc instead
+       of xmalloc.
+
+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
+       there's always a frame.  Use get_frame_pc_if_available instead of
+       get_frame_pc, and if there's no PC available, don't look up a
+       symtab.
+
+2011-03-18  Pedro Alves  <pedro@codesourcery.com>
+
+       * stack.c (print_frame_local_vars, print_frame_arg_vars): Handle
+       unavailable PC.
+
+2011-03-18  Pedro Alves  <pedro@codesourcery.com>
+
+       * tracepoint.c (set_traceframe_context): Handle unavailable PC
+       gracefully.
+
+2011-03-18  Pedro Alves  <pedro@codesourcery.com>
+
+       * frame.h (frame_unwind_caller_pc_if_available): Declare.
+       * frame.c (frame_unwind_caller_pc_if_available): New.
+       * stack.c (frame_info): Handle unavailable PC.
+
+2011-03-18  Pedro Alves  <pedro@codesourcery.com>
+
+       * frame.c (frame_unwind_pc): Rename to ...
+       (frame_unwind_pc_if_available): ... this.  New `pc' output
+       parameter.  Change return type to int.  Gracefully handle
+       gdbarch_unwind_pc throwing NOT_AVAILABLE_ERROR.  Return 0 if that
+       happened, or 1 otherwise.
+       (frame_unwind_pc): Reimplement on top of
+       frame_unwind_pc_if_available.
+       (get_frame_func): Rename to ...
+       (get_frame_func_if_available): New `pc' output parameter.  Change
+       return type to int.  Gracefully handle the PC not being available.
+       (get_frame_func): Reimplement on top of
+       get_frame_func_if_available.
+       (select_frame): Handle the PC being unavailable.
+       (get_prev_frame): Handle the PC being unavailable.
+       (get_frame_pc_if_available): New.
+       (get_frame_address_in_block_if_available): New.
+       (find_frame_sal): Handle the frame PC not being available.
+       * frame.h (get_frame_pc_if_available): Declare.
+       (get_frame_address_in_block_if_available): Declare.
+       (get_frame_func_if_available): Declare.
+       * stack.c (print_frame_info): Handle the PC being unavailable.
+       (find_frame_funname): Ditto.
+       (print_frame): Handle the PC being unavailable.
+       (get_frame_language): Ditto.
+       * blockframe.c (get_frame_block): Ditto.
+       * macroscope.c (default_macro_scope): Ditto.
+       * tui/tui-stack.c (tui_show_frame_info): Ditto.
+
+2011-03-18  Pedro Alves  <pedro@codesourcery.com>
+
+       * dwarf2loc.c (dwarf2_evaluate_loc_desc): Catch
+       NOT_AVAILABLE_ERROR when evaluating the location expression.
+
+2011-03-18  Pedro Alves  <pedro@codesourcery.com>
+
+       * dwarf2loc.c (read_pieced_value): Handle get_frame_register_bytes
+       returning that the register piece is unavailable/optimized out.
+       (write_pieced_value): Handle get_frame_register_bytes returning
+       that the register piece is unavailable/optimized out when doing a
+       read-modify write of a bitfield.
+       * findvar.c (value_from_register): Handle get_frame_register_bytes
+       returning that the register piece is unavailable/optimized out.
+       * frame.c (get_frame_register_bytes): New parameters `optimizedp'
+       and `unavailablep'.  Throw error on bad debug info.  Use
+       frame_register instead of frame_register_read, to fill in the new
+       arguments.
+       * frame.h (get_frame_register_bytes): New parameters `optimizedp'
+       and `unavailablep'.
+       * valops.c: (value_assign): Adjust, and handle
+       get_frame_register_bytes failing.
+       * spu-tdep.c: Include exceptions.h.
+       (spu_software_single_step): Adjust, and handle
+       get_frame_register_bytes failing.
+       (spu_get_longjmp_target): Ditto.
+       * gdbarch.sh (register_to_value): Change to return int.  New
+       parameters `optimizedp' and `unavailablep'.
+       * gdbarch.h, gdbarch.c: Regenerate.
+       * i386-tdep.c (i386_register_to_value): Adjust to new
+       gdbarch_register_to_value interface.
+       * i387-tdep.c (i387_register_to_value): Ditto.
+       * i387-tdep.h (i387_register_to_value): Ditto.
+       * alpha-tdep.c (alpha_register_to_value): Ditto.
+       * ia64-tdep.c (ia64_register_to_value): Ditto.
+       * m68k-tdep.c (m68k_register_to_value): Ditto.
+       * mips-tdep.c (mips_register_to_value): Ditto.
+       * rs6000-tdep.c (rs6000_register_to_value): Ditto.
+
+2011-03-18  Pedro Alves  <pedro@codesourcery.com>
+
+       * findvar.c (value_of_register): Mark the value as unavailable, if
+       the register is unavailable.
+       * frame.h (frame_register_unwind): New `unavailablep' parameter.
+       (frame_register): New `unavailablep' parameter.
+       (frame_register_read): Update comment.
+       * frame.c (frame_register_unwind): New `unavailablep' parameter.
+       Set it if the register is unavailable.  If the register is
+       unavailable, clear the output buffer.
+       (frame_register): New `unavailablep' parameter.  Pass it down.
+       (frame_unwind_register): Adjust.
+       (put_frame_register): Adjust.
+       (frame_register_read): Adjust.  Also return false if the register
+       is not available.
+       (frame_register_unwind_location): Adjust.
+       * sentinel-frame.c (sentinel_frame_prev_register): If the register
+       is unavailable, mark the value accordingly.
+       * stack.c (frame_info): Handle unavailable registers.
+
+2011-03-18  Pedro Alves  <pedro@codesourcery.com>
+
+       * mi/mi-main.c (register_changed_p): Handle REG_UNAVAILABLE, and
+       simplify, using regcache_cooked_read.
+
 2011-03-18  Pedro Alves  <pedro@codesourcery.com>
 
        * regcache.h (regcache_raw_read, regcache_raw_read_signed)
This page took 0.025275 seconds and 4 git commands to generate.