+2009-09-16 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR gdb/10649
+ * Makefile.in (GDB_DATADIR_PATH): Renamed to ...
+ (GDB_DATADIR): This.
+ (xml-syscall-install): Updated.
+
+2009-09-16 Joel Brobecker <brobecker@adacore.com>
+
+ GDB 7.0 branch created (branch timestamp: 2009-09-16 19:00 UTC)
+ * version.in: Bump version to 7.0.50.20090916-cvs.
+
+2009-09-15 Tom Tromey <tromey@redhat.com>
+
+ * varobj.h (varobj_update_result_t) <new>: New field.
+ (varobj_get_child_range, varobj_set_child_range): Declare.
+ (varobj_list_children): Update.
+ (varobj_enable_pretty_printing, varobj_has_more)
+ (varobj_pretty_printed_p): Declare.
+ * varobj.c (pretty_printing): New global.
+ (varobj_enable_pretty_printing): New function.
+ (struct varobj_root) <from, to, constructor, child_iter,
+ saved_item>: New fields.
+ (varobj_create): Don't call install_default_visualizer.
+ (instantiate_pretty_printer): Don't use value_copy.
+ (varobj_has_more): New function.
+ (restrict_range): New function.
+ (install_dynamic_child): Likewise.
+ (dynamic_varobj_has_child_method): Likewise.
+ (update_dynamic_varobj_children): Remove 'new_and_unchanged'
+ argument; add 'new', 'unchanged', 'from', and 'to' arguments.
+ Rewrite.
+ (varobj_get_num_children): Call update_dynamic_varobj_children.
+ (varobj_list_children): Add 'from' and 'to' arguments. Ignore
+ result of update_dynamic_varobj_children. Don't call
+ install_default_visualizer. Restrict result range.
+ (varobj_add_child): Don't call install_default_visualizer.
+ (varobj_pretty_printed_p): New function.
+ (install_visualizer): Rewrite. Move earlier in file.
+ (install_default_visualizer): Likewise.
+ (construct_visualizer): New function.
+ (install_new_value_visualizer): Likewise.
+ (install_new_value): Don't call release_value. Special case
+ pretty-printed objects. Use value_incref. Rearrange "changed"
+ logic.
+ (varobj_get_child_range): New function.
+ (varobj_set_child_range): Likewise.
+ (varobj_set_visualizer): Rewrite.
+ (varobj_update): Rewrite pretty-printing logic.
+ (new_variable): Initialize new fields.
+ (free_variable): Destroy new fields.
+ (value_of_root): Copy 'from' and 'to'.
+ (my_value_of_variable): Handle pretty-printers.
+ (value_get_print_value): Rework pretty-printing logic.
+ (cplus_describe_child): Don't use release_value.
+ * mi/mi-cmds.h (mi_cmd_enable_pretty_printing)
+ (mi_cmd_var_set_update_range): Declare.
+ * mi/mi-cmds.c (mi_cmds): Add enable-pretty-printing and
+ var-set-update-range.
+ * mi/mi-cmd-var.c (print_varobj): Update. Emit "dynamic"
+ attribute.
+ (mi_cmd_var_create): Emit "has_more" attribute.
+ (mi_cmd_var_set_format): Plug memory leak.
+ (mi_print_value_p): Replace 'type' argument with 'var'. Handle
+ pretty-printed varobjs.
+ (mi_cmd_var_list_children): Accept 'from' and 'to' arguments.
+ Emit "has_more" attribute.
+ (mi_cmd_var_evaluate_expression): Plug memory leak.
+ (mi_cmd_var_assign): Likewise.
+ (varobj_update_one): Likewise. Emit "dynamic", "has_more", and
+ "new_children" attributes.
+ (mi_cmd_enable_pretty_printing): New function.
+ (mi_cmd_var_set_update_range): Likewise.
+
+2009-09-15 Doug Evans <dje@google.com>
+
+ * dwarf2expr.h (dwarf_value_location): Add more comments describing
+ enum values.
+ (struct dwarf_stack_value): New struct.
+ (struct dwarf_expr_context): Change type of `stack' from CORE_ADDR*
+ to struct dwarf_stack_value*.
+ (struct dwarf_expr_piece): Move `v.value' into its own struct, v.expr,
+ all uses updated. Add v.expr.in_stack_memory.
+ (dwarf_expr_push): Update declaration.
+ (dwarf_expr_fetch_in_stack_memory): Declare.
+ * dwarf2expr.c (dwarf_expr_grow_stack): Update calculation of
+ size of stack value.
+ (dwarf_expr_push): New arg in_stack_memory, all callers updated.
+ (dwarf_expr_fetch_in_stack_memory): New function.
+ (add_piece): Set in_stack_memory for non-literal values.
+ (execute_stack_op): Allow ops to specify whether the value is on the
+ program's stack.
+ (execute_stack_op, case DW_OP_fbreg): Mark value as in stack memory.
+ (execute_stack_op, case DW_OP_call_frame_cfa): Ditto.
+ (execute_stack_op, case DW_OP_dup): Copy in_stack_memory flag.
+ (execute_stack_op, cases DW_OP_pick, DW_OP_over): Ditto.
+ (execute_stack_op, cases DW_OP_swap, DW_OP_rot): Update type of
+ dwarf stack value.
+ * dwarf2loc.c (read_pieced_value): Call read_stack for values known
+ to be on the program's stack.
+ (dwarf2_evaluate_loc_desc, case DWARF_VALUE_MEMORY): Call
+ set_value_stack only for objects known to be in stack memory.
+ * dwarf2-frame.c (execute_stack_op): New arg initial_in_stack_memory,
+ all callers updated.
+
+ * target.c (memory_xfer_partial): Pass correct length to dcache_update.
+
+2009-09-15 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ Fix gcc-4.5 HEAD warnings for enum ada_operator.
+ * Makefile.in (HFILES_NO_SRCDIR): Add ada-operator.inc.
+ * ada-lang.h (enum ada_operator): Move it to ...
+ * ada-operator.inc: ... a new file.
+ * expression.h (enum exp_opcode): Include ada-operator.inc.
+ New element OP_UNUSED_LAST. Update comment for OP_EXTENDED0.
+
+ Fix gcc-4.5 HEAD warnings for GDB_FORM_cached_string.
+ * dwarf2read.c (GDB_FORM_cached_string)
+ (dwarf_form_name <GDB_FORM_cached_string>): Remove.
+ (struct attribute <dwarf_form>): Reduce the bit width.
+ (struct attribute <string_is_canonical>, DW_STRING_IS_CANONICAL): New.
+ (read_attribute_value <DW_FORM_string>)
+ (read_attribute_value <DW_FORM_strp>): Initialize
+ DW_STRING_IS_CANONICAL.
+ (dwarf2_name, dump_die_shallow <DW_FORM_string>)
+ (dump_die_shallow <DW_FORM_strp>): Update the code using former
+ GDB_FORM_cached_string.
+
+2009-09-14 Sergio Durigan Junior <sergiodj@linux.vnet.ibm.com>
+
+ * amd64-linux-tdep.c: Include xml-syscall.h header, define the XML
+ syscall name for the architecture.
+ (amd64_linux_get_syscall_number): New function.
+ (amd64_linux_init_abi): Register the correct functions for syscall
+ catchpoint; set the correct syscall file name.
+ * breakpoint.c: New include: xml-syscall.h.
+ (set_raw_breakpoint_without_location): Setting the parameters
+ for the catch syscall feature.
+ (insert_catch_syscall): New.
+ (remove_catch_syscall): New.
+ (breakpoint_hit_catch_syscall): New.
+ (print_it_catch_syscall): New.
+ (print_one_catch_syscall): New.
+ (print_mention_catch_syscall): New.
+ (catch_syscall_breakpoint_ops): New.
+ (syscall_catchpoint_p): New.
+ (create_catchpoint_without_mention): New.
+ (create_catchpoint): Modified in order to use
+ create_catchpoint_without_mention.
+ (create_syscall_event_catchpoint): New.
+ (clean_up_filters): New.
+ (catch_syscall_split_args): New.
+ (catch_syscall_command_1): New.
+ (delete_breakpoint): Add cleanup for catch syscall.
+ (is_syscall_catchpoint_enabled): New.
+ (catch_syscall_enabled): New.
+ (catching_syscall_number): New.
+ (catch_syscall_completer): New completer function.
+ (add_catch_command): Add the completer function for catchpoints.
+ * breakpoint.h (syscalls_to_be_caught): New vector.
+ (catch_syscall_enabled): New.
+ (catching_syscall_number): New.
+ * gdbarch.c: Regenerated.
+ * gdbarch.h: Regenerated.
+ * gdbarch.sh: Add syscall catchpoint functions and structures.
+ (get_syscall_number): New.
+ (UNKNOWN_SYSCALL): New definition.
+ * i386-linux-nat.c (i386_linux_resume): Select the proper request
+ to be made for ptrace() considering if we are catching syscalls
+ or not.
+ * i386-linux-tdep.c: Include xml-syscall.h header, define the XML
+ syscall name for the architecture.
+ (i386_linux_get_syscall_number): New.
+ (i386_linux_init_abi): Register the correct functions for syscall
+ catchpoint; set the correct syscall file name.
+ * inf-child.c (inf_child_set_syscall_catchpoint): New.
+ (inf_child_target): Assign default values to target_ops.
+ * inf-ptrace.c (inf_ptrace_resume): Select the proper request
+ to be made for ptrace() considering if we are catching syscalls
+ or not.
+ * inferior.h (struct inferior): Included new variables
+ any_syscall_count, syscalls_counts and total_syscalls_count,
+ used to keep track of requested syscall catchpoints.
+ * infrun.c (resume): Add syscall catchpoint.
+ (deal_with_syscall_event): New.
+ (handle_inferior_event): Add syscall entry/return events.
+ (inferior_has_called_syscall): New.
+ * linux-nat.c: Define some helpful variables to track wether we have
+ support for the needed ptrace option.
+ (linux_test_for_tracesysgood): New.
+ (linux_supports_tracesysgood): New.
+ (linux_enable_tracesysgood): New.
+ (linux_enable_event_reporting): Save the current used ptrace
+ options.
+ (linux_child_post_attach): Calling linux_enable_tracesysgood.
+ (linux_child_post_startup_inferior): Likewise.
+ (linux_child_set_syscall_catchpoint): New function.
+ (linux_handle_extended_wait): Handle the case which the inferior stops
+ because it has called or returned from a syscall.
+ (linux_target_install_ops): Install the necessary functions to handle
+ syscall catchpoints.
+ * linux-nat.h (struct lwp_info): Include syscall_state into the
+ structure, which indicates if we are in a syscall entry or return.
+ * ppc-linux-tdep.c: Include xml-syscall.h header, define the XML
+ syscall filename for the arch.
+ (ppc_linux_get_syscall_number): New.
+ (ppc_linux_init_abi): Register the correct functions for syscall
+ catchpoint; setting the correct name for the XML syscall file.
+ * target.c (update_current_target): Update/copy functions related to
+ syscall catchpoint.
+ (target_waitstatus_to_string): Add syscall catchpoint entry/return
+ events.
+ * target.h (struct target_waitstatus): Add syscall number.
+ (struct syscall): New struct to hold information about syscalls
+ in the system.
+ (struct target_ops): Add ops for syscall catchpoint.
+ (inferior_has_called_syscall): New.
+ (target_set_syscall_catchpoint): New.
+ * xml-support.c (xml_fetch_content_from_file): New function,
+ transferred from xml-tdesc.c.
+ * xml-support.h (xml_fetch_content_from_file): New.
+ * xml-tdesc.c (fetch_xml_from_file): Function removed;
+ transferred to xml-support.c.
+ (file_read_description_xml): Updated to use the new
+ xml_fetch_content_from_file function.
+ * syscalls/gdb-syscalls.dtd: New definition file for syscall's XML
+ support.
+ * syscalls/amd64-linux.xml: New file containing information about
+ syscalls for GNU/Linux systems that use amd64 architecture.
+ * syscalls/i386-linux.xml: New file containing information about
+ syscalls for GNU/Linux systems that use i386 architecture.
+ * syscalls/ppc-linux.xml: New file containing information about
+ syscalls for GNU/Linux systems that use PPC architecture.
+ * syscalls/ppc64-linux.xml: New file containing information about
+ syscalls for GNU/Linux systems that use PPC64 architecture.
+ * xml-syscall.c: New file containing functions for manipulating
+ syscall's XML files.
+ * xml-syscall.h: New file, exporting the functions above mentioned.
+ * Makefile.in: Support for relocatable GDB datadir and XML
+ syscall.
+ * NEWS: Added information about the catch syscall feature.
+
+2009-09-14 Doug Evans <dje@google.com>
+
+ * target.c (memory_xfer_partial): Only update dcache after we know
+ the write succeeded.
+
+2009-09-14 Paul Pluzhnikov <ppluzhnikov@google.com>
+
+ *minsyms.c (lookup_minimal_symbol_by_pc_section_1): Assert non-NULL
+ section.
+ (lookup_minimal_symbol_by_pc_section): Check for NULL section.
+ (lookup_minimal_symbol_by_pc): Adjust.
+
+2009-09-14 Paul Pluzhnikov <ppluzhnikov@google.com>
+
+ * objfiles.c (qsort_cmp): Remove asserts.
+ (insert_section_p, filter_debuginfo_sections): New function.
+ (filter_overlapping_sections): Likewise.
+ (update_section_map): Adjust.
+
+2009-09-13 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * frame.c (get_frame_id): Default to outer_frame_id if the this_id
+ method does not supply an ID. Assert that the result is not
+ null_frame_id.
+ (outer_frame_id): New.
+ (frame_id_p): Accept outer_frame_id.
+ (frame_id_eq): Allow outer_frame_id to be equal to itself.
+ (frame_find_by_id): Revert previous local workarounds.
+ (get_prev_frame_1): Adjust end-of-stack check to test outer_frame_id.
+ * frame.h (null_frame_id, frame_id_p): Update comments.
+ (outer_frame_id): Declare.
+ * infrun.c (handle_inferior_event): Do not treat all steps from the
+ outermost frame as subroutine calls.
+
+ * libunwind-frame.c (libunwind_frame_this_id): Do not clear THIS_ID.
+ * hppa-tdep.c (hppa_stub_frame_this_id): Likewise.
+ * ia64-tdep.c (ia64_frame_this_id): Likewise.
+ (ia64_libunwind_frame_this_id, ia64_libunwind_sigtramp_frame_this_id):
+ Use outer_frame_id instead of null_frame_id.
+ * amd64obsd-tdep.c (amd64obsd_trapframe_cache): Use outer_frame_id.
+ * i386obsd-tdep.c (i386obsd_trapframe_cache): Likewise.
+ * inline-frame.c (inline_frame_this_id): Refuse outer_frame_id.
+ * thread.c (restore_selected_frame): Update comment and remove
+ frame_id_p check.
+
+2009-09-11 Doug Evans <dje@google.com>
+
+ * dwarf2expr.c (execute_stack_op, case DW_OP_piece): Delete unused
+ local addr_or_regnum.
+
+ * objfiles.c (struct objfile_data): Delete member cleanup and replace
+ with save, free.
+ (register_objfile_data_with_cleanup): Delete arg cleanup and replace
+ with save, free. All callers updated.
+ (clear_objfile_data): Replace cleanup loop with separate save and
+ free loops.
+ * objfiles.h (register_objfile_data_with_cleanup): Update.
+ * arm-tdep.c (arm_objfile_data_free): Renamed from
+ arm_objfile_data_cleanup, all callers updated.
+ * dwarf2read.c (dwarf2_per_objfile_free): Renamed from
+ dwarf2_per_objfile_cleanup, all callers updated.
+ * python/py-objfile.c (py_free_objfile): Renamed from clean_up_objfile,
+ all callers updated.
+ * python/py-type.c (save_objfile_types): Renamed from
+ clean_up_objfile_types, all callers updated.
+
2009-09-11 Tom Tromey <tromey@redhat.com>
* dwarf2loc.c (struct piece_closure) <arch>: New field.