+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.