gdb/
[deliverable/binutils-gdb.git] / gdb / ChangeLog
index 0197e8bce1dcc2115da1c437e1e015dddc0817e4..bfef2e24c1d20cef477a25dc31877d7f45ea3d8f 100644 (file)
@@ -1,3 +1,360 @@
+2011-02-14  Pedro Alves  <pedro@codesourcery.com>
+
+       * exceptions.h (NOT_AVAILABLE_ERROR): New error.
+       * value.c: Include "exceptions.h".
+       (require_available): Throw NOT_AVAILABLE_ERROR instead of a
+       generic error.
+       * cp-abi.c: Include gdb_assert.h.
+       (baseclass_offset): Add `embedded_offset' and `val' parameters.
+       Assert the method is implemented.  Wrap NOT_AVAILABLE_ERROR
+       errors.
+       * cp-abi.h (baseclass_offset): Add `embedded_offset' and `val'
+       parameters.  No longer returns -1 on error.
+       (struct cp_abi_ops) <baseclass_offset>: Add `embedded_offset' and
+       `val' parameters.
+       * cp-valprint.c: Include exceptions.h.
+       (cp_print_value): Handle NOT_AVAILABLE_ERROR errors when fetching
+       the baseclass_offset.  Handle unavailable base classes.  Use
+       val_print_invalid_address.
+       * p-valprint.c: Include exceptions.h.
+       (pascal_object_print_value): Handle NOT_AVAILABLE_ERROR errors
+       when fetching the baseclass_offset.  No longer expect
+       baseclass_offset returning -1.  Handle unavailable base classes.
+       Use val_print_invalid_address.
+       * valops.c (dynamic_cast_check_1): Rename `contents' parameter to
+       `valaddr' parameter, and change its type to gdb_byte pointer.  Add
+       `embedded_offset' and `val' parameters.  Adjust.
+       (dynamic_cast_check_2): Rename `contents' parameter to `valaddr'
+       parameter, and change its type to gdb_byte pointer.  Add
+       `embedded_offset' and `val' parameters.  Adjust.  No longer expect
+       baseclass_offset returning -1.
+       (value_dynamic_cast): Use value_contents_for_printing rather than
+       value_contents.  Adjust.
+       (search_struct_field): No longer expect baseclass_offset returning
+       -1.
+       (search_struct_method): If reading memory from the target is
+       necessary, wrap it in a new value to pass to baseclass_offset.  No
+       longer expect baseclass_offset returning -1.
+       (find_method_list): No longer expect baseclass_offset returning
+       -1.  Use value_contents_for_printing rather than value_contents.
+       * valprint.c (val_print_invalid_address): New function.
+       * valprint.h (val_print_invalid_address): Declare.
+       * gdbtypes.c (is_unique_ancestor_worker): New `embedded_offset'
+       and `val' parameters.  No longer expect baseclass_offset returning
+       -1.  Adjust.
+       * gnu-v2-abi.c: Include "exceptions.h".
+       (gnuv2_baseclass_offset): Add `embedded_offset' and `val'
+       parameters.  Handle unavailable memory.  Recurse through
+       gnuv2_baseclass_offset directly, rather than through
+       baseclass_offset.  No longer returns -1 on not found, instead
+       throw an error.
+       * gnu-v3-abi.c (gnuv3_baseclass_offset): Add `embedded_offset' and
+       `val' parameters.  Adjust.
+
+2011-02-14  Pedro Alves  <pedro@codesourcery.com>
+
+       * tracepoint.c (memrange_sortmerge): Don't merge ranges that are
+       almost but not quite adjacent.
+
+2011-02-14  Pedro Alves  <pedro@codesourcery.com>
+
+       * value.h (value_entirely_available): Declare.
+       * value.c (value_entirely_available): New function.
+       * c-valprint.c (c_value_print): Don't try fetching the pointer's
+       real type if the pointer is unavailable.
+
+2011-02-14  Pedro Alves  <pedro@codesourcery.com>
+
+       * valops.c (value_repeat): Use read_value_memory instead of
+       read_memory.
+
+2011-02-14  Pedro Alves  <pedro@codesourcery.com>
+
+       * value.h (value_contents_copy, value_contents_copy_raw): Declare.
+       * value.c (value_contents_copy_raw, value_contents_copy): New
+       functions.
+       (value_primitive_field): Use value_contents_copy_raw instead of
+       memcpy.
+       * valops.c (value_fetch_lazy): Use value_contents_copy instead of
+       memcpy.
+       (value_array, value_slice): Ditto.
+       * valarith.c (value_subscripted_rvalue): Use
+       value_contents_copy_raw instead of memcpy.
+
+2011-02-14  Pedro Alves  <pedro@codesourcery.com>
+
+       <unavailable> references.
+
+       * valops.c (get_value_at): Use value_from_contents_and_address,
+       avoiding read_memory.
+
+2011-02-14  Pedro Alves  <pedro@codesourcery.com>
+
+       * c-valprint.c (c_val_print): Print a string with unavailable
+       contents as an array.
+
+2011-02-14  Pedro Alves  <pedro@codesourcery.com>
+
+       * value.h (unpack_bits_as_long): Delete declaration.
+       (unpack_value_bits_as_long): Declare.
+       (unpack_value_field_as_long): Declare.
+       (value_field_bitfield): Declare.
+       * value.c (unpack_bits_as_long): Rename to...
+       (unpack_value_bits_as_long_1): ... this.  Add embedded_offset and
+       value parameters.  Return the extracted result in a new output
+       parameter.  If the value contents are unavailable, return false,
+       otherwise return true.
+       (unpack_value_bits_as_long): New.
+       (unpack_field_as_long): Rename to...
+       (unpack_value_field_as_long_1): ... this.  Add embedded_offset and
+       Add embedded_offset and value parameters.  Return the extracted
+       result in a new output parameter. If the value contents are
+       unavailable, return false, otherwise return true.
+       (unpack_value_field_as_long): New.
+       (unpack_field_as_long_1): New.
+       (unpack_field_as_long): Reimplement as wrapper around
+       unpack_value_field_as_long_1.
+       (value_field_bitfield): New function.
+       * valops.c (value_fetch_lazy): When fetching a bitfield, use
+       unpack_value_bits_as_long.  Mark the value as unavailable, if it
+       is unavailable.
+       * jv-valprint.c (java_print_value_fields): Use
+       value_field_bitfield.
+       * p-valprint.c (pascal_object_print_value_fields): Use
+       value_field_bitfield.
+       * cp-valprint.c (cp_print_value_fields): Use value_field_bitfield.
+
+2011-02-14  Pedro Alves  <pedro@codesourcery.com>
+
+       * value.c (get_internalvar_integer): Also return the int value of
+       TYPE_CODE_INT INTERNALVAR_VALUE values.
+       (set_internalvar): Don't special case TYPE_CODE_INT.
+
+2011-02-14  Pedro Alves  <pedro@codesourcery.com>
+
+       * value.c (struct internalvar) <enum internalvar_kind>: Remove
+       INTERNALVAR_POINTER.
+       <pointer>: Delete.
+       (value_of_internalvar): Remove INTERNALVAR_POINTER handling.
+       (set_internalvar): Remove special TYPE_CODE_PTR handling.
+       (preserve_one_internalvar): Remove INTERNALVAR_POINTER handling.
+
+2011-02-14  Pedro Alves  <pedro@codesourcery.com>
+
+       * value.h (value_available_contents_eq): Declare.
+       * value.c (find_first_range_overlap): New function.
+       (value_available_contents_eq): New function.
+       * valprint.c (val_print_array_elements): Use
+       value_available_contents_eq.
+       * ada-valprint.c (val_print_packed_array_elements): Use
+       value_available_contents_eq.
+       * jv-valprint.c (java_value_print): Use
+       value_available_contents_eq.
+
+2011-02-14  Pedro Alves  <pedro@codesourcery.com>
+
+       * target.c (target_read_live_memory): New function.
+       (memory_xfer_live_readonly_partial): New.
+       (memory_xfer_partial): If reading from a traceframe, fallback to
+       reading unavailable read-only memory from read-only regions of
+       live target memory.
+       * tracepoint.c (disconnect_tracing): Adjust.
+       (set_current_traceframe): New, factored out from
+       set_traceframe_number.
+       (set_traceframe_number): Reimplement to only change the traceframe
+       number on the GDB side.
+       (do_restore_current_traceframe_cleanup): Adjust.
+       (make_cleanup_restore_traceframe_number): New.
+       (cur_traceframe_number): New global.
+       (tfile_open): Set cur_traceframe_number to no traceframe.
+       (set_tfile_traceframe): New function.
+       (tfile_trace_find): If looking up a traceframe using any method
+       other than by number, make sure the current tfile traceframe
+       matches gdb's current traceframe.  Update the current tfile
+       traceframe if the lookup succeeded.
+       (tfile_fetch_registers, tfile_xfer_partial)
+       (tfile_get_trace_state_variable_value): Make sure the remote
+       traceframe matches gdb's current traceframe.
+       * remote.c (remote_traceframe_number): New global.
+       (remote_open_1): Set it to -1.
+       (set_remote_traceframe): New function.
+       (remote_fetch_registers, remote_store_registers)
+       (remote_xfer_memory, remote_xfer_partial)
+       (remote_get_trace_state_variable_value): Make sure the remote
+       traceframe matches gdb's current traceframe.
+       (remote_trace_find): If looking up a traceframe using any method
+       other than by number, make sure the current remote traceframe
+       matches gdb's current traceframe.  Update the current remote
+       traceframe if the lookup succeeded.
+       * infrun.c (fetch_inferior_event): Adjust.
+       * tracepoint.h (set_current_traceframe): Declare.
+       (get_traceframe_number, set_traceframe_number): Add describing
+       comments.
+
+2011-02-14  Pedro Alves  <pedro@codesourcery.com>
+
+       Mark pieces of values as unavailable if the corresponding memory
+       is unavailable.
+
+       * valops.c: Include tracepoint.h.
+       (value_fetch_lazy): Use read_value_memory.
+       (read_value_memory): New.
+       * value.h (read_value_memory): Declare.
+       * dwarf2loc.c (read_pieced_value): Use read_value_memory.
+       * exec.c (section_table_available_memory): New function.
+       * exec.h (section_table_available_memory): Declare.
+
+2011-02-14  Pedro Alves  <pedro@codesourcery.com>
+
+       * Makefile.in (SFILES): Add memrange.c.
+       (HFILES_NO_SRCDIR): Add memrange.h.
+       (COMMON_OBS): Add memrange.o.
+       * memrange.c: New file.
+       * memrange.h: New file.
+       * tracepoint.c: Include memrange.h.
+       (struct mem_range): Delete.
+       (mem_range_s): Delete.
+       (traceframe_available_memory): New function.
+       * tracepoint.h (traceframe_available_memory): Declare.
+
+2011-02-14  Pedro Alves  <pedro@codesourcery.com>
+
+       * target.h (struct traceframe_info): Forward declare.
+       (enum target_object): Add TARGET_OBJECT_TRACEFRAME_INFO.
+       (struct target_ops) <to_traceframe_info>: New field.
+       (target_traceframe_info): New.
+       * target.c (update_current_target): Inherit and default
+       to_traceframe_info.
+       * remote.c (PACKET_qXfer_traceframe_info): New.
+       (remote_protocol_features): Register qXfer:traceframe-info:read.
+       (remote_xfer_partial): Handle TARGET_OBJECT_TRACEFRAME_INFO.
+       (remote_traceframe_info): New.
+       (init_remote_ops): Install it.
+       (_initialize_remote): Install "set/show remote traceframe-info"
+       commands.
+       * tracepoint.h (parse_traceframe_info): Declare.
+       * tracepoint.c (struct mem_range): New.
+       (mem_range_s): New typedef.
+       (struct traceframe_info): New.
+       (traceframe_info): New global.
+       (free_traceframe_info): New function.
+       (clear_traceframe_info): New function.
+       (start_tracing, tfind_1, set_traceframe_number): Clear traceframe
+       info.
+       (build_traceframe_info): New function.
+       (tfile_traceframe_info): New function.
+       (init_tfile_ops): Install tfile_traceframe_info.
+       (traceframe_info_start_memory, free_result): New functions.
+       (memory_attributes, traceframe_info_elements): New globals.
+       (parse_traceframe_info, get_traceframe_info): New functions.
+       * features/traceframe-info.dtd: New file.
+       * Makefile.in (XMLFILES): Add traceframe-info.dtd.
+
+2011-02-14  Pedro Alves  <pedro@codesourcery.com>
+
+       Base support for <unavailable> value contents.
+
+       * value.h (value_bytes_available): Declare.
+       (mark_value_bytes_unavailable): Declare.
+       * value.c (struct range): New struct.
+       (range_s): New typedef.
+       (ranges_overlap): New function.
+       (range_lessthan): New function.
+       (ranges_contain_p): New function.
+       (struct value) <unavailable>: New field.
+       (value_bytes_available): New function.
+       (mark_value_bytes_unavailable): New function.
+       (require_not_optimized_out): Constify parameter.
+       (require_available): New function.
+       (value_contents_all, value_contents): Require all bytes be
+       available.
+       (value_free): Free `unavailable'.
+       (value_copy): Copy `unavailable'.
+       * valprint.h (val_print_unavailable): Declare.
+       * valprint.c (valprint_check_validity): Rename `offset' parameter
+       to `embedded_offset'.  If printing a scalar, check whether the
+       value chunk is available.
+       (val_print_unavailable): New.
+       (val_print_scalar_formatted): Check whether the value is
+       available.
+       * python/py-prettyprint.c (apply_val_pretty_printer): Refuse
+       pretty-printing unavailable values.
+
+2011-02-13  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       Fix const/volatile qualifiers of C++ types, PR c++/12328.
+       * c-typeprint.c (c_type_print_args): Update the function comment.  New
+       variable param_type, initialize it.  Remove const/volatile qualifiers
+       for language_cplus and !show_artificial.  Use param_type.
+
+2011-02-13  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       * symtab.c (find_pc_sect_line): New variable objfile, initialize it
+       from S.  Iterate S using ALL_OBJFILE_SYMTABS.  Verify BV for each S.
+       * symtab.h (struct symtab) <next>: Comment extension.
+
+2011-02-12  Yao Qi  <yao@codesourcery.com>
+
+       * Makefile.in (CLEANDIRS): Remove duplicated common dir.
+
+2011-02-11  Pedro Alves  <pedro@codesourcery.com>
+
+       * infrun.c (proceed): Move switching out and in of tfind mode from
+       here ...
+       (fetch_inferior_event): ... to here.
+
+2011-02-11  Yao Qi  <yao@codesourcery.com>
+
+       * Makefile.in: Remove signals.o from COMMON_OBS.  Link
+       libcommon.a.
+       * configure.ac: Add common to sub dir.
+       * configure: Regenerate.
+
+2011-02-10  Pedro Alves  <pedro@codesourcery.com>
+
+       * vec.h (VEC_block_remove): Place VEC_ASSERT_INFO on the right
+       side of the parenthesis.
+
+       Merge from GCC:
+       2010-07-13  Jakub Jelinek  <jakub@redhat.com>
+       * vec.h (VEC_block_remove): Fix comment.
+
+2011-02-08  Michael Snyder  <msnyder@vmware.com>
+
+       * linux-nat.c (linux_nat_filter_event): Fix typo in comment.
+
+2011-02-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       * i386-tdep.c (i386_process_record): Rename l suffixes to d suffixes
+       in comments for pcmpgtd, pcmpeqd, psubd, paddd, pcmpgtd, pcmpeqd,
+       psubd and paddd.
+
+2011-02-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       PR 12361.
+       * i386-tdep.c (i386_process_record) <0x660f3807>: Fix the comment to
+       phsubsw.
+       (i386_process_record) <lddqu>: Fix the opcode to 0xf20ff0.
+       (i386_process_record) <0x0f3807>: Fix the comment to phsubsw.
+
+2011-02-08  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * dwarf2read.c (read_subroutine_type): Set special calling
+       convention flag for functions compiled by IBM XL C for OpenCL.
+       * ppc-sysv-tdep.c: Include "dwarf2.h"
+       (ppc_sysv_abi_push_dummy_call): Implement IBM OpenCL vector types
+       calling convention.
+       (do_ppc_sysv_return_value): Add FUNC_TYPE argument.  Implement
+       IBM OpenCL vector types calling convention.
+       (ppc_sysv_abi_return_value): Pass through FUNC_TYPE.
+       (ppc_sysv_abi_broken_return_value): Likewise.
+       (ppc64_sysv_abi_push_dummy_call): Implement IBM OpenCL vector
+       types calling convention.
+       (ppc64_sysv_abi_return_value): Likewise.
+       * spu-tdep.c: Include "dwarf2.h"
+       (spu_return_value): Implement IBM OpenCL vector types calling
+       convention.
+
 2011-02-08  Ulrich Weigand  <uweigand@de.ibm.com>
 
        * ppc-sysv-tdep.c (ppc64_sysv_abi_push_dummy_call): Implement
This page took 0.026829 seconds and 4 git commands to generate.