gdb
[deliverable/binutils-gdb.git] / gdb / ChangeLog
index c9469da0df6dcf83aeddc90f93c00d6e85e18db6..664e16b2d801dd0679bfd5585b9df5556a8d5d94 100644 (file)
@@ -1,3 +1,427 @@
+2011-03-24  Tom Tromey  <tromey@redhat.com>
+
+       PR breakpoints/11816:
+       * linespec.c (decode_line_1): Parse `function:label' linespecs.
+       (decode_compound): Update.
+       (find_function_symbol): New function.
+       (decode_dollar): Update.
+       (decode_label): Add 'function_symbol' parameter.  Handle
+       function-relative labels.
+       (decode_variable): Update.
+       (symbol_found): Add 'function_symbol' parameter.  Use label's PC,
+       not its line.  Set `special_display' and canonical name for
+       labels.
+
+2011-03-24  Tom Tromey  <tromey@redhat.com>
+
+       * linespec.h (struct linespec_result) <special_display>: New
+       field.
+       * breakpoint.h (struct breakpoint) <display_canonical>: New
+       field.
+       * breakpoint.c (print_breakpoint_location): Respect
+       display_canonical.
+       (create_breakpoint_sal): Add 'display_canonical' parameter.
+       (create_breakpoints_sal): Update.
+       (create_breakpoint): Update.
+
+2011-03-24  Tom Tromey  <tromey@redhat.com>
+
+       * symtab.c (decode_line_spec): Update.
+       * linespec.c (build_canonical_line_spec): Change type of
+       'canonical'.
+       (decode_line_2, decode_line_1, decode_objc, decode_compound)
+       (find_method, decode_all_digits, decode_dollar, decode_label)
+       (symbol_found): Likewise.
+       (init_linespec_result): New function.
+       * breakpoint.c (struct captured_parse_breakpoint_args)
+       <canonical_p>: New field, replaces addr_string_p.
+       (create_breakpoints_sal): Add 'canonical' parameter, replacing
+       'addr_string'.
+       (parse_breakpoint_sals): Likewise.
+       (do_captured_parse_breakpoint): Update.
+       (create_breakpoint): Use struct linespec_result.
+       (until_break_command): Update.
+       (breakpoint_re_set_one): Update.
+       (decode_line_spec_1): Update.
+       * linespec.h (struct linespec_result): New.
+       (init_linespec_result): Declare.
+
+2011-03-23  Pedro Alves  <pedro@codesourcery.com>
+
+       * regcache.c (regcache_raw_read): If the target didn't supply a
+       given raw register, mark it as unavailable.
+
+2011-03-23  Kai Tietz  <ktietz@redhat.com>
+
+       * breakpoint.c (clear_command): Use filename_cmp
+       instead of strcmp for comparison.
+       * buildsym.c (watch_main_source_file_lossage): Likewise.
+       (patch_subfile_names): Use IS_DIR_SEPARATOR instead of
+       checking just for slash.
+       * dbxread.c (read_dbx_symtab): Use lbasename instead of
+       strrchr and filename_cmp instead of strcmp for filenames.
+       (add_old_header_file): Use filename_cmp
+       instead of strcmp for comparison.
+       * exec.c (exec_set_section_address): Likewise.
+       * macrotab.c (macro_lookup_inclusion): Likewise.
+       (macro_lookup_inclusion): Likewise.
+       * elfread.c (_initialize_elfread): Likewise.
+       (elfstab_offset_sections): Likewise.
+       (elfstab_offset_sections): Use lbasename instead of
+       strrchr.
+       * mdebugread.c (parse_partial_symbols): Likewise.
+       (arse_partial_symbols): Use filename_(n)cmp instead of
+       str(n)cmp for comparison.
+       * minsyms.c (lookup_minimal_symbol): Likewise.
+       * psymtab.c (read_psymtabs_with_filename): Likewise.
+       * solib.c (solib_read_symbols): Likewise.
+       (reload_shared_libraries_1): Likewise.
+       * symmisc.c (maintenance_print_symbols): Likewise.
+       * symfile.c (separate_debug_file_exists): Likewise.
+       (reread_symbols): Likewise.
+       (find_separate_debug_file_by_debuglink): Likewise.
+       * remote-fileio.c (remote_fileio_func_rename): Likewise.
+       * source.c (add_path): Likewise.
+       * symtab.c (filename_seen): Likewise.
+       (file_matches): Likewise.
+       (print_symbol_info): Likewise.
+       (maybe_add_partial_symtab_filename): Likewise.
+       (make_source_files_completion_list): Likewise.
+       * xml-syscall.c (init_sysinfo): Likewise.
+       * windows-nat.c (_initialize_check_for_gdb_ini): Use
+       IS_DIR_SEPARATOR for checking for trailing path separator.
+
+2011-03-22  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       * dwarf2expr.c (execute_stack_op): Handle DW_OP_GNU_entry_value.  New
+       label abort_expression.
+       * dwarf2loc.c (dwarf2_evaluate_loc_desc_full): Handle
+       DWARF_VALUE_OPTIMIZED_OUT.
+
+2011-03-22  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       Code cleanup.
+       * c-typeprint.c (c_type_print_args): Change parameter show_artificial
+       to linkage_name.  Invert its value.  Update the function comment.
+       (c_type_print_varspec_suffix): Invert it at the caller.
+       * dwarf2read.c (dwarf2_compute_name): Invert it at the caller.
+
+2011-03-22  Pedro Alves  <pedro@codesourcery.com>
+
+       * infcmd.c (post_create_inferior): Ignore NOT_AVAILABLE_ERROR
+       errors when reading the `stop_pc'.
+       * printcmd.c (pc_prefix): Use get_frame_pc_if_available instead of
+       get_frame_pc.
+
+2011-03-22  Phil Muldoon  <pmuldoon@redhat.com>
+
+       * NEWS: Document gdb.Write stream keyword.
+
+2011-03-22  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       Revert:
+       2011-03-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
+       * dwarf2read.c (producer_is_gxx_lt_4_6): New function.
+       (dwarf2_add_field): Fix new_field->accessibility for
+       cu->header.version >= 3 while verifying also producer_is_gxx_lt_4_6.
+
+2011-03-22  Phil Muldoon  <pmuldoon@redhat.com>
+
+        PR python/12183
+
+       * python/py-function.c (fnpy_call): Treat GdbErrors differently to
+       other error classes.  Do not print stack trace.
+
+2011-03-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       * dwarf2read.c (producer_is_gxx_lt_4_6): New function.
+       (dwarf2_add_field): Fix new_field->accessibility for
+       cu->header.version >= 3 while verifying also producer_is_gxx_lt_4_6.
+
+2011-03-21  Ulrich Weigand  <ulrich.weigand@linaro.org>
+
+       * arm-tdep.c (arm_analyze_prologue): Do not abort parsing when
+       encountering a load via a non-SP register.
+
+2011-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * tramp-frame.c (tramp_frame_prepend_unwinder): Set stop_reason
+       field in returned unwinder.
+
+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.029517 seconds and 4 git commands to generate.