+
+ * continuations.h (continuation_ftype): Add `err' parameter.
+ Document parameters.
+ (do_all_continuations, do_all_continuations_thread)
+ (do_all_intermediate_continuations)
+ (do_all_intermediate_continuations_thread)
+ (do_all_inferior_continuations): Add `err' parameter.
+ * continuations.c (do_my_continuations_1, do_my_continuations)
+ (do_all_inferior_continuations, do_all_continuations_ptid)
+ (do_all_continuations_thread_callback)
+ (do_all_continuations_thread, do_all_continuations)
+ (do_all_intermediate_continuations_thread_callback)
+ (do_all_intermediate_continuations_thread)
+ (do_all_intermediate_continuations): Add `err' parameter, and pass
+ it down all the way to the continuations proper.
+ * inf-loop.c (inferior_event_handler): If fetching an inferior
+ event throws an error, don't pop the target, and still call the
+ continuations, but with `err' set. Adjust all other continuation
+ calls.
+ * breakpoint.c (until_break_command_continuation): Add `err'
+ parameter.
+ * infcmd.c (step_1_continuation): Add `err' parameter. Don't
+ issue another step if `err' is set.
+ (struct until_next_continuation_args): New.
+ (until_next_continuation): Add `err' parameter. Adjust.
+ (until_next_command): Adjust.
+ (struct finish_command_continuation_args): Add `thread' field.
+ (finish_command_continuation): Add `err' parameter. Handle it.
+ (finish_forward): Adjust.
+ (attach_command_continuation): Add `err' parameter. Handle it.
+ * infrun.c (infrun_thread_stop_requested_callback): Adjust to
+ cancel the continuations.
+ * interps.c (interp_set): Adjust to cancel the continuations.
+ * thread.c (clear_thread_inferior_resources): Adjust to cancel the
+ continuations rather than discarding.
+ (free_thread): Don't clear thread inferior resources here.
+ (delete_thread_1): Do it here instead. And do it before removing
+ the thread from the threads list. Tag the thread as exited before
+ clearing thread inferior resources.
+
+
+ * infcall.c (call_function_by_hand): Rephrase error message.
+
+
+ * defs.h (struct thread_info, struct inferior): Delete forward
+ declarations.
+ * breakpoint.h (struct thread_info): New forward declaration.
+ * observer.sh (struct inferior): New forward declaration.
+ * python/python-internal.h (struct inferior): New forward
+ declaration.
+
+
+ * defs.h (struct continuation, continuation_ftype)
+ (continuation_free_arg_ftype, add_continuation)
+ (do_all_continuations, do_all_continuations_thread)
+ (discard_all_continuations, discard_all_continuations_thread)
+ (add_intermediate_continuation, do_all_intermediate_continuations)
+ (do_all_intermediate_continuations_thread)
+ (discard_all_intermediate_continuations)
+ (discard_all_intermediate_continuations_thread)
+ (add_inferior_continuation, do_all_inferior_continuations)
+ (discard_all_inferior_continuations): Move to ...
+ * continuations.h: ... this new file.
+ * breakpoint.c, continuations.c, event-top.c, inf-loop.c,
+ infcmd.c, inferior.c, infrun.c, interps.c: Include
+ continuations.h.
+
+
+ Fix PR 10970, PR 12702.
+ * linux-nat.c (linux_lwp_is_zombie): New function.
+ (wait_lwp): Initialize status. New variable prev_mask. Block signals.
+ Check for linux_lwp_is_zombie. Use WNOHANG and sigsuspend.
+
+
+ * defs.h (continuation_ftype, continuation_free_arg_ftype): New
+ typedefs.
+ (add_continuation, add_intermediate_continuation)
+ (add_inferior_continuation): Use them.
+ * continuations.c (struct continuation): Use them.
+ (make_continuation_ftype): Delete.
+ (make_continuation, add_inferior_continuation, add_continuation)
+ (add_intermediate_continuation): Use continuation_ftype and
+ continuation_free_arg_ftype. Rename parameters to shorter names.
+
+
+ * continuations.c (make_continuation): Make it return void.
+ (do_my_continuations): Rename to ...
+ (do_my_continuations_1): ... this. Remove old_chain parameter and
+ adjust.
+ (do_my_continuations): New.
+ (discard_my_continuations): Rename to ...
+ (discard_my_continuations_1): ... this. Remove old_chain
+ parameter and adjust.
+ (discard_my_continuations): New.
+ (add_inferior_continuation): Simplify.
+ (do_all_inferior_continuations): Reimplement on top
+ do_my_continuations.
+ (discard_all_inferior_continuations): Simplify.
+ (add_continuation): Simplify.
+ (do_all_continuations_ptid): Simplify.
+ (discard_all_continuations_thread_callback): Simplify.
+ (add_intermediate_continuation): Simplify.
+ (discard_all_intermediate_continuations_thread_callback):
+ Simplify.
+
+
+ * utils.c (struct continuation, add_continuation)
+ (add_inferior_continuation)
+ (do_all_inferior_continuations, discard_all_inferior_continuations)
+ (restore_thread_cleanup, do_all_continuations_ptid)
+ (do_all_continuations_thread_callback)
+ (do_all_continuations_thread, do_all_continuations)
+ (discard_all_continuations_thread_callback)
+ (discard_all_continuations_thread, discard_all_continuations)
+ (add_intermediate_continuation)
+ (do_all_intermediate_continuations_thread_callback)
+ (do_all_intermediate_continuations_thread)
+ (do_all_intermediate_continuations)
+ (discard_all_intermediate_continuations_thread_callback)
+ (discard_all_intermediate_continuations_thread)
+ (discard_all_intermediate_continuations): Move to ...
+ * continuations.c: ... this new file, and adjust to no longer
+ implement continuations on top of cleanups.
+ * Makefile.in (SFILES): Add continuations.c.
+ (COMMON_OBS): Add continuations.o.
+
+
+ * inferior.h (enum exec_direction_kind): Delete EXEC_ERROR.
+ * infrun.c (show_exec_direction_func): Don't handle EXEC_ERROR.
+ Internal error on invalid values.
+ * reverse.c: Don't handle EXEC_ERROR.
+ * mi/mi-main.c: Don't handle EXEC_ERROR.
+
+
+ * record.c: Include event-loop.h, inf-loop.h.
+ (record_beneath_to_async): New global.
+ (tmp_to_async): New global.
+ (record_async_inferior_event_token): New global.
+ (record_open_1): Don't error out if async is enabled.
+ (record_open): Handle to_async. Create an async event source in
+ the event loop.
+ (record_close): Delete the async event source.
+ (record_resumed): New global.
+ (record_execution_dir): New global.
+ (record_resume, record_core_resume): Set them. Register the
+ target on the event loop.
+ (record_wait): Rename to ...
+ (record_wait_1): ... this. Add more debug output. Handle
+ TARGET_WNOHANG, and the target beneath returning
+ TARGET_WAITKIND_IGNORE.
+ (record_wait): Reimplement on top of record_wait_1.
+ (record_async_mask_value): New global.
+ (record_async, record_async_mask, record_can_async_p)
+ (record_is_async_p, record_execution_direction): New functions.
+ (init_record_ops, init_record_core_ops): Install new methods.
+ * infrun.c (fetch_inferior_event): Temporarily switch the global
+ execution direction to the direction the target was going.
+ (execution_direction): Change type to int.
+ * target.c (default_execution_direction): New function.
+ (update_current_target): Inherit and de_fault
+ to_execution_direction.
+ * target.h (struct target_ops) <to_execution_direction>: New
+ field.
+ (target_execution_direction): New macro.
+ * inferior.h (execution_direction): Change type to int.
+
+
+ * infcall.c (call_function_by_hand): Don't allow calling functions
+ in reverse execution mode.
+
+
+ * infcmd.c (finish_command): Allow async finish in reverse.
+
+
+ * gdb_thread_db.h: Delete. Move to ...
+ * common/gdb_thread_db.h: ... here.
+
+
+ * infcmd.c (finish_backward): Set a step-resume breakpoint at the
+ function's entry point instead of a manually managed momentary
+ breakpoint, and only ever issue one proceed call.
+ * infrun.c (handle_inferior_event) <BPSTAT_WHAT_STEP_RESUME>: If
+ doing a reverse-finish, switch to stepi mode, to do another step.
+ (insert_step_resume_breakpoint_at_sal): Make public.
+ (normal_stop): No need to save function value return registers if
+ going reverse.
+ * inferior.h (insert_step_resume_breakpoint_at_sal): Declare.
+
+
+ * breakpoint.h (enum bptype) <bp_hp_step_resume>: New.
+ (enum bpstat_what_main_action): Move BPSTAT_WHAT_STEP_RESUME
+ before BPSTAT_WHAT_STOP_SILENT. Add BPSTAT_WHAT_HP_STEP_RESUME
+ at the end.
+ * breakpoint.c (update_breakpoints_after_exec): Also delete hp
+ step-resume breakpoints.
+ (print_it_typical): Handle bp_hp_step_resume.
+ (bpstat_what): Ditto.
+ (bptype_string): Ditto.
+ (print_one_breakpoint_location): Ditto.
+ (allocate_bp_location): Ditto.
+ (mention): Ditto.
+ (breakpoint_re_set_one): Ditto.
+ * infrun.c (handle_inferior_event): Adjust. Split
+ BPSTAT_WHAT_STEP_RESUME handling in BPSTAT_WHAT_STEP_RESUME and
+ BPSTAT_WHAT_HP_STEP_RESUME.
+ (insert_step_resume_breakpoint_at_sal): Rename to ...
+ (insert_step_resume_breakpoint_at_sal_1): ... this. Add bptype
+ parameter. Handle it.
+ (insert_step_resume_breakpoint_at_sal): Reimplement on top of
+ insert_step_resume_breakpoint_at_sal_1.
+ (insert_step_resume_breakpoint_at_frame): Rename to ...
+ (insert_hp_step_resume_breakpoint_at_frame): ... this. Adjust to
+ set a high-priority step-resume breakpoint.
+ (insert_step_resume_breakpoint_at_frame): Adjust comment.
+ (insert_step_resume_breakpoint_at_caller): Ditto.
+
+
+ * breakpoint.c (iterate_over_related_breakpoints): New.
+ (do_map_delete_breakpoint): New.
+ (delete_command): Pass do_map_delete_breakpoint to
+ map_breakpoint_numbers.
+ (do_disable_breakpoint): New.
+ (do_map_disable_breakpoint): Iterate over the breakpoint's related
+ breakpoints.
+ (do_enable_breakpoint): Rename to ...
+ (enable_breakpoint_disp): ... this.
+ (enable_breakpoint): Adjust.
+ (do_enable_breakpoint): New.
+ (enable_once_breakpoint): Delete.
+ (do_map_enable_breakpoint): New.
+ (do_map_enable_once_breakpoint): New.
+ (enable_once_command, enable_delete_command)
+ (delete_trace_command): Iterate over the breakpoint's related
+ breakpoints.
+
+
+ * alpha-tdep.c (alpha_cannot_fetch_register): Don't return true
+ for ALPHA_ZERO_REGNUM.
+ (alpha_supply_int_regs): Explicitly supply zero as the value for
+ ALPHA_ZERO_REGNUM in the register cache.
+ * alpha-nat.c (fetch_osf_core_registers): Ditto.
+
+
+ * gdb/gdb_thread_db.h: Remove HAVE_UINTPTR_T.
+
+
+ * symfile.h (struct dwarf2_section_names): New type.
+ (struct dwarf2_debug_sections): New type.
+ (dwarf2_has_info): Add parameter.
+ * dwarf2read.c (dwarf2_elf_names): New variable.
+ (INFO_SECTION, ABBREV_SECTION, LINE_SECTION, LOC_SECTION)
+ (MACINFO_SECTION, STR_SECTION, RANGES_SECTION, TYPES_SECTION)
+ (FRAME_SECTION, EH_FRAME_SECTION, GDB_INDEX_SECTION): Remove.
+ (dwarf2_has_info): Add names parameter. Pass names
+ to dwarf2_locate_sections.
+ (section_is_p): Rewrite using the names parameter.
+ (dwarf2_locate_sections): Use section names from the names parameter.
+ * coffread.c (coff_symfile_read): Adjust call to dwarf2_has_info.
+ * elfread.c (read_psyms): Ditto.
+ * machoread.c (macho_symfile_read): Ditto.
+
+
+ PR gdb/8677
+ * event-loop.c (handle_file_event): Don't handle POLLHUP as error.
+
+
+ PR breakpoint/12803
+ * linespec.c (keep_name_info): Add handling for "volatile" keyword.
+ (decode_compound): Unconditionally call keep_name_info.
+
+
+ * breakpoint.c (watchpoint_check): If the watchpoint went out of
+ scope, clear its command list.
+ (map_breakpoint_numbers): Don't walk the related breakpoints list
+ of each breakpoint.
+
+
+ * MAINTAINERS: Move Jim Blandy to past maintainers.
+
+
+ * symfile.h (enum dwarf2_section_enum): New type.
+ (dwarf2_get_section_info): New prototype.
+ * dwarf2read.c (dwarf2_get_section_info): Replace parameter
+ section_name by sect. Use a switch to select the info.
+ * dwarf2-frame.c (warf2_get_section_info): Remove prototype.
+ (dwarf2_build_frame_info): Adjust calls to dwarf2_get_section_info.
+
+
+ * solib-svr4.c (svr4_solib_create_inferior_hook): Skip setting
+ shared library event breakpoint if there's no execution.
+
+
+ * breakpont.c (remove_hw_watchpoints): Remove unused function.
+ * breakpoint.h remove_hw_watchpoints(): Remove prototype.
+
+
+ * c-lang.c (evaluate_subexp_c): Use expect_type if it is not
+ NULL.
+
+
+ * python/lib/gdb/printing.py (register_pretty_printer): Add missing
+ entry for RuntimeError to doc string.
+
+
+ * sparc-tdep.c (sparc_skip_stack_check): Recognize a new instruction
+ sequence for probing loops.
+
+
+ * infrun.c (user_visible_resume_ptid): Fix typos in describing
+ comment.
+
+
+ * sparc-nat.c (sparc_fetch_inferior_registers): Explicitly supply
+ zero as the value for %g0 in the register cache.
+ * sparc-tdep.c (sparc32_supply_gregset): Likewise.
+ * sparc64-tdep.c (sparc64_supply_gregset): Likewise.
+
+
+ * infrun.c (proceed): Set previous_inferior_ptid here.
+ (init_wait_for_inferior): Initialize previous_inferior_ptid from
+ inferior_ptid, not null_ptid.
+ (wait_for_inferior): Don't initialize previous_inferior_ptid here.
+ (fetch_inferior_event): Nor here.
+
+
+ * inf-loop.c (inferior_event_handler): Only output a message if
+ verbose.
+
+
+ * MAINTAINERS: Update my e-mail address.
+
+
+ * infrun.c (proceed): Switch the inferior event loop to
+ INF_EXEC_COMPLETE if the target refused to resume from a
+ vfork/fork.
+
+
+ * infcmd.c: Include "inf-loop.h".
+ (step_once): When stepping into an inline subroutine, pretend the
+ target has run. If the target can async, switch the inferior
+ event loop to INF_EXEC_COMPLETE.
+ * inferior.h (user_visible_resume_ptid): Declare.
+ * infrun.c (user_visible_resume_ptid): New function, factored out
+ from `resume'.
+ (resume): Use it.
+ * mi/mi-main.c (mi_execute_async_cli_command): Remove assertion
+ that the current thread is running. Merge async and sync
+ branches.
+
+
+ * infcmd.c (step_1): Simplify synchronous case.
+
+
+ * tracepoint.c: Include exceptions.h.
+ (TFILE_PID): Move higher in file.
+ (tfile_open): Delay pushing the tfile target until we're assured
+ the tfile header is present in the file. Wrap reading the initial
+ newline-terminated lines in TRY_CATCH. Pop the target if the
+ initial setup failed. Add the tfile's thread immediately
+ aftwards, before any non-essential setup. Don't skip
+ post_create_inferior if there are no traceframes present in the
+ file.
+ (tfile_close): Remove redundant check for null before xfree call.
+ (tfile_thread_alive): New function.
+ (init_tfile_ops): Register it as to_thread_alive callback.
+
+
+ * tracepoint.c (tfile_open): Delete #if 0'd code.
+
+
+ Fix -readnow for -gdwarf-4 unused type units.
+ * dwarf2read.c (struct signatured_type): Remove the field offset.
+ (create_signatured_type_table_from_index): Remove its initialization.
+ (create_debug_types_hash_table): Likewise. Initialize per_cu.offset
+ instead. Add a complaint call.
+ (process_psymtab_comp_unit): Change assignment to gdb_assert.
+ (process_type_comp_unit, lookup_die_type, dump_die_shallow)
+ (lookup_signatured_type_at_offset, read_signatured_type)
+ (write_one_signatured_type): Update the field for per_cu.
+
+
+ * python/py-inferior.c (python_inferior_exit): Use
+ target_gdbarch.
+ (python_on_resume): Likewise.
+
+
+ * breakpoint.c (bpstat_do_actions_1): Call prevent_dont_repeat.
+
+
+ * tracepoint.c (tfile_trace_find): Return directly when num is -1.
+
+
+ * xcoffread.c (read_xcoff_symtab): Initialize fcn_aux_saved.
+
+
+ * dwarf2read.c (dwarf2_add_field): Constify.
+ * value.c (value_static_field): Constify.
+ * gdbtypes.h (struct main_type) <field.field_location.physname>:
+ Now const.
+ * ax-gdb.c (gen_static_field): Constify
+
+
+ * linux-nat.c (kill_callback): Use SIGKILL first.
+
+
+ * ada-lang.c (print_it_exception): Avoid use of sprintf.
+
+
+ * value.c (value_fn_field): Constify.
+ * symtab.c (gdb_mangle_name): Constify.
+ * stabsread.c (update_method_name_from_physname): Make 'physname'
+ argument const.
+ * p-typeprint.c (pascal_type_print_method_args): Make arguments
+ const. Use explicit fputc_filtered loop.
+ (pascal_type_print_base): Constify.
+ * p-lang.h (pascal_type_print_method_args): Update.
+ * linespec.c (add_matching_methods): Constify.
+ (add_constructors): Likewise.
+ * jv-typeprint.c (java_type_print_base): Constify.
+ * gdbtypes.h (struct cplus_struct_type)
+ <fn_fieldlist.fn_field.physname>: Now const.
+ * dwarf2read.c (compute_delayed_physnames): Constify.
+ (dwarf2_add_member_fn): Likewise.
+ * c-typeprint.c (c_type_print_base): Constify. Use cleanups.
+
+
+ * infrun.c (resume): Mention which is the current thread, and its
+ current PC in debug output.
+ (prepare_to_proceed): Mention the thread switching in debug
+ output.
+
+
+ * linux-thread-db.c (try_thread_db_load_from_pdir_1): Fix absolute
+ path check. Use xmalloc and cleanups.
+ (try_thread_db_load_from_dir): Use xmalloc and cleanups.
+
+
+ * cp-valprint.c (cp_print_value_fields): Catch errors from
+ value_static_field.
+
+
+ * dwarf2read.c (dwarf2_get_die_type): Call
+ get_die_type_at_offset.
+ * dwarf2expr.c (dwarf_get_base_type): Handle NULL return from
+ get_base_type function.
+
+
+ * infrun.c (handle_inferior_event) <handling deferred step>: Clear
+ trap_expected.
+
+
+ * python/py-auto-load.c (source_section_scripts): Mention objfile
+ name in warning.
+
+
+ * linux-thread-db.c (try_thread_db_load_from_pdir_1): New function.
+ (try_thread_db_load_from_pdir): Call it. If unable to find
+ libthread_db in directory of libpthread, see if we're looking at
+ the separate-debug-info copy.
+
+ * python/py-autoload.c (print_script): Print "Missing" instead of
+ "No" for missing scripts.
+ (info_auto_load_scripts): Tweak "Loaded" column to fit "Missing".
+
+
+ * ui-file.c (stdio_file_write_async_safe): Add comment.
+
+
+ * ui-file.c (stdio_file_write_async_safe): Add empty check for build.
+
+
+ Support $pdir and $sdir in libthread-db-search-path.
+ * NEWS: Mention $sdir,$pdir.
+ * gdb_thread_db.h (LIBTHREAD_DB_SEARCH_PATH): Add $sdir:$pdir.
+ * linux-thread-db.c (try_thread_db_load_from_pdir): New function.
+ (try_thread_db_load_from_sdir): New function.
+ (try_thread_db_load_from_dir): New function.
+ (thread_db_load_search): Handle $pdir, $sdir. Remove trying of
+ system directories if search of libthread-db-search-path fails,
+ that is now done via $sdir.
+ (has_libpthread): New function.
+ (thread_db_load): Remove search for libthread_db in directory of
+ libpthread, that is now done via $pdir.
+
+ * NEWS: Mention "info auto-load-scripts".
+ * python/py-auto-load.c (struct auto_load_pspace_info): New member
+ script_not_found_warning_printed.
+ (init_loaded_scripts_info): Renamed from create_loaded_scripts_hash,
+ all callers updated. Initialize script_not_found_warning_printed.
+ (get_auto_load_pspace_data_for_loading): New function.
+ (maybe_add_script): New function.
+ (source_section_scripts): Simplify. Only print one warning regardless
+ of the number of auto-load scripts not found.
+ (clear_section_scripts): Clear script_not_found_warning_printed.
+ (auto_load_objfile_script): Record script in hash table.
+ (count_matching_scripts): New function.
+ (maybe_print_script): Renamed from maybe_print_section_script, all
+ callers updated. Rewrite to use ui_out_*.
+ (info_auto_load_scripts): Renamed from
+ maintenance_print_section_scripts, all callers updated.
+ (gdbpy_initialize_auto_load): "maintenance print section-scripts"
+ renamed as "info auto-load-scripts".
+
+
+ * dwarf2expr.c (read_uleb128): Cast intermediate result.
+ (read_sleb128): Likewise.
+
+
+ * dwarf2loc.c (disassemble_dwarf_expression): Fix instruction
+ offset display.
+
+
+ * linux-nat.c (debug_linux_nat_async): Delete.
+ Replace all references to use debug_linux_nat instead.
+ (show_debug_linux_nat_async): Delete.
+ (sigchld_handler): Call ui_file_write_async_safe instead of
+ fprintf_unfiltered.
+ (_initialize_linux_nat): Remove `set debug lin-lwp-async'.
+ * ui-file.c (struct ui_file): New member to_write_async_safe.
+ (null_file_write_async_safe): New function.
+ (ui_file_write_async_safe): New function.
+ (set_ui_file_write_async_safe): New function.
+ (ui_file_new): Initialize to_write_async_safe.
+ (stdio_file_write_async_safe): New function.
+ (struct stdio_file): New member fd.
+ (stdio_file_new): Initialize to_write_async_safe, fd.
+ (stdio_file_read, stdio_file_isatty): New stdio->fd instead of calling
+ fileno.
+ * ui-file.h (ui_file_write_async_safe_ftype): New typedef.
+ (set_ui_file_write_async_safe): Declare.
+ (ui_file_write_async_safe): Declare.
+
+
+ * utils.c (do_value_free): New function.
+ (make_cleanup_value_free): Likewise.
+ * dwarf2loc.c (dwarf2_evaluate_loc_desc_full): Handle value
+ freeing correctly.
+ (dwarf2_loc_desc_needs_frame): Call
+ make_cleanup_value_free_to_mark.
+ * dwarf2expr.h (struct dwarf_expr_context) <mark>: Remove field.
+ * dwarf2expr.c (free_dwarf_expr_context): Don't call
+ value_free_to_mark.
+ (new_dwarf_expr_context): Don't call value_mark.
+ * dwarf2-frame.c (execute_stack_op): Call
+ make_cleanup_value_free_to_mark.
+ * defs.h (make_cleanup_value_free): Declare.
+
+
+ * mi/mi-main.c (mi_cmd_execute): Use cleanup from
+ prepare_execute_command.
+ * top.c (prepare_execute_command): Return cleanup.
+ (execute_command): Use cleanup from prepare_execute_command.
+ * top.h (prepare_execute_command): Change prototype to return
+ cleanup.
+ * defs.h (struct value): Add opaque declaration.
+ (make_cleanup_value_free_to_mark): Add prototype.
+ * utils.c (do_value_free_to_mark): New function.
+ (make_cleanup_value_free_to_mark): Likewise.
+
+
+ * dwarf2expr.c (execute_stack_op) <DW_OP_shr>: Unconditionally
+ cast left-hand-side to unsigned.
+
+
+ PR gdb/12617:
+ * value.h (value_from_contents): Declare.
+ * value.c (value_from_contents): New function.
+ * dwarf2read.c (dwarf_stack_op_name): Add new values.
+ (dwarf2_get_die_type): New function.
+ * dwarf2loc.c (dwarf_expr_get_base_type): New function.
+ (allocate_piece_closure): Acquire reference to values.
+ (read_pieced_value): Update for value-based expressions.
+ (write_pieced_value): Likewise.
+ (free_pieced_value_closure): Call value_free as needed.
+ (dwarf2_evaluate_loc_desc_full): Set get_base_type field.
+ Update for value-based expressions.
+ * dwarf2loc.h (dwarf2_get_die_type): Declare.
+ * dwarf2expr.h (struct dwarf_stack_value) <value>: Change type.
+ <get_base_type>: New field.
+ (struct dwarf_expr_piece) <v.value>: Change type.
+ <v.regno>: New field.
+ (struct dwarf_expr_context) <mark>: New field.
+ (dwarf_expr_piece, dwarf_expr_fetch): Update.
+ (dwarf_expr_pop, dwarf_expr_push): Remove.
+ (dwarf_expr_push_address): Declare.
+ * dwarf2expr.c (dwarf_arch_cookie): New global.
+ (struct dwarf_gdbarch_types): New.
+ (dwarf_gdbarch_types_init, dwarf_expr_address_type): New
+ functions.
+ (dwarf_expr_push): Change type of 'value' argument. Update. Now
+ static.
+ (dwarf_expr_push_address): New function.
+ (dwarf_expr_pop): Now static.
+ (dwarf_expr_fetch): Change return type.
+ (dwarf_require_integral): New function.
+ (dwarf_expr_fetch): Simplify.
+ (add_piece): Update.
+ (base_types_equal_p, dwarf_get_base_type, get_unsigned_type): New
+ functions.
+ (execute_stack_op) <sign_ext>: Remove.
+ Use values for DWARF stack.
+ <DW_OP_GNU_const_type, DW_OP_GNU_deref_type,
+ DW_OP_GNU_regval_type, DW_OP_GNU_convert, DW_OP_GNU_reinterpret>:
+ New cases.
+ (_initialize_dwarf2expr): New function.
+ (add_piece): Update.
+ (new_dwarf_expr_context): Set new field.
+ (free_dwarf_expr_context): Call value_free_to_mark.
+ * dwarf2-frame.c (no_base_type): New function.
+ (execute_stack_op): Set get_base_type field. Update.
+
+
+ * dwarf2read.c (read_common_block): Fix formatting.
+
+
+ * breakpoint.c (disable_breakpoint): Disable all locations
+ associated with a tracepoint on target if a trace experiment is
+ running.
+ (disable_command): Disable a specific tracepoint location on target if
+ a trace experiment is running.
+ (do_enable_breakpoint): Enable all locations associated with a
+ tracepoint on target if a trace experiment is running.
+ (enable_command) Enable a specific tracepoint location on target if a
+ trace experiment is running.
+ * target.c (update_current_target): Add INHERIT and de_fault clauses for
+ to_supports_enable_disable_tracepoint, to_enable_tracepoint and
+ to_disable_tracepoint.
+ * target.h: Add declaration of struct bp_location.
+ (struct target_ops): Add new functions
+ to_supports_enable_disable_tracepoint, to_enable_tracepoint and
+ to_disable_tracepoint to target operations.
+ (target_supports_enable_disable_tracepoint): New macro.
+ (target_enable_tracepoint): New macro.
+ (target_disable_tracepoint): New macro.
+ * remote.c (struct remote_state): Add new field.
+ (remote_enable_disable_tracepoint_feature): New.
+ (remote_protocol_features): Add new entry.
+ (remote_supports_enable_disable_tracepoint): New.
+ (remote_enable_tracepoint): New.
+ (remote_disable_tracepoint): New.
+ (init_remote_ops): Add remote_enable_tracepoint,
+ remote_disable_tracepoint and remote_supports_enable_disable_tracepoint
+ to remote operations.
+ * tracepoint.c (start_tracing): Allow tracing to start without any
+ tracepoints enabled with just a warning if they can be re-enabled
+ later.
+ * NEWS: Add news item for the new behaviour of the enable and disable
+ GDB commands when applied to tracepoints.
+ Add news items for the new remote packets QTEnable and QTDisable.
+
+
+ * config.in: Regenerate.
+ * configure: Regenerate.
+ * configure.ac <--with-system-readline> (for readline_echoing_p):
+ Remove the test.
+ * tui/tui-io.c (tui_old_readline_echoing_p): Rename to ...
+ (tui_old_rl_echoing_p): ... here.
+ (tui_setup_io): Rename extern declaration readline_echoing_p to
+ _rl_echoing_p. Adjust assignments for the both renames.
+
+
+ * symtab.c (lookup_symtab): Run cleanup before returning.
+
+
+ * dwarf2read.c (handle_data_member_location): New function.
+ (dwarf2_add_field): Use it.
+ (read_common_block): Likewise.
+
+
+ Make addrs->SECTINDEX always defined.
+ * symfile.c (relative_addr_info_to_section_offsets): Check for
+ SECTINDEX -1, not for zero ADDR.
+ (addrs_section_compar): Remove checking for invalid SECTINDEX.
+ (addr_info_make_relative): Set SECTINDEX to -1 for unmatched entries.
+ * symfile.h (struct section_addr_info) <sectindex>: Update the comment
+ on its validity.
+
+
+ * linux-thread-db.c: Whitespace cleanup.
+ (try_thread_db_load_1): Fix comment.
+
+ * linux-thread-db.c (set_libthread_db_search_path): New function.
+ (_initialize_thread_db): Add setter for libthread-db-search-path.
+
+
+ * NEWS: Mention --with-iconv-bin.
+ * configure.ac: New option --with-iconv-bin.
+ * configure: Regenerate.
+ * config.in: Regenerate.
+ * defs.h (relocate_gdb_directory): Declare.
+ * main.c (relocate_gdb_directory): Renamed from relocate_directory,
+ removed progname parameter, and exported. All callers updated.
+ * charset.c (find_charset_names): Use --with-iconv-bin if specified.
+
+ * linux-nat.c (lin_lwp_attach_lwp): For !WIPSTOPPED case,
+ adding missing call to restore_child_signals_mask.
+
+
+ * inferior.h (wait_for_inferior): Remove `thread_exec_as_sigtrap'
+ parameter.
+ * infrun.c (proceed, start_remote): Adjust.
+ (wait_for_inferior): Remove `thread_exec_as_sigtrap' parameter,
+ and adjust to not handle it.
+ * solib-irix.c (irix_solib_create_inferior_hook): Adjust.
+ * solib-osf.c (osf_solib_create_inferior_hook): Adjust.
+ * solib-sunos.c (sunos_solib_create_inferior_hook): Adjust.
+ * solib-svr4.c (svr4_solib_create_inferior_hook): Adjust.
+ * windows-nat.c (do_initial_windows_stuff): Adjust.
+ * infcmd.c (attach_command): Adjust.
+ (notice_new_inferior): Adjust.
+
+
+ * ppc-linux-tdep.c (ppu2spu_prev_register): Handle pseudo registers.
+ (ppu2spu_unwind_register): Mark pseudo registers unavailable.
+ * spu-tdep.c (op_selb): Use correct value.
+
+
+ * spu-linux-nat.c (spu_symbol_file_add_from_memory): Add NULL
+ "parent" parameter to symbol_file_add_from_bfd call.
+
+
+ Implement support for PowerPC BookE masked watchpoints.
+ * NEWS: Mention masked watchpoint support. Create "Changed commands"
+ section.
+ * breakpoint.h (struct breakpoint_ops) <works_in_software_mode>: New
+ method. Initialize to NULL in all existing breakpoint_ops instances.
+ (struct breakpoint) <hw_wp_mask>: New field.
+ * breakpoint.c (is_masked_watchpoint): Add prototype.
+ (update_watchpoint): Don't set b->val for masked watchpoints. Call
+ breakpoint's breakpoint_ops.works_in_software_mode if available.
+ (watchpoints_triggered): Handle the case of a hardware masked
+ watchpoint trigger.
+ (watchpoint_check): Likewise.
+ (works_in_software_mode_watchpoint): New function.
+ (insert_masked_watchpoint, remove_masked_watchpoint)
+ (resources_needed_masked_watchpoint)
+ (works_in_software_mode_masked_watchpoint, print_it_masked_watchpoint)
+ (print_one_detail_masked_watchpoint, print_mention_masked_watchpoint)
+ (print_recreate_masked_watchpoint, is_masked_watchpoint): New
+ functions.
+ (masked_watchpoint_breakpoint_ops): New structure.
+ (watch_command_1): Check for the existence of the `mask' parameter.
+ Set b->ops according to the type of hardware watchpoint being created.
+ * ppc-linux-nat.c (ppc_linux_insert_mask_watchpoint)
+ (ppc_linux_remove_mask_watchpoint)
+ (ppc_linux_masked_watch_num_registers): New functions.
+ (_initialize_ppc_linux_nat): Initialize to_insert_mask_watchpoint,
+ to_remove_mask_watchpoint and to_masked_watch_num_registers.
+ * target.c (update_current_target): Mention to_insert_mask_watchpoint,
+ to_remove_mask_watchpoint, and to_masked_watch_num_registers.
+ (target_insert_mask_watchpoint, target_remove_mask_watchpoint)
+ (target_masked_watch_num_registers): New functions.
+ * target.h (struct target_ops) <to_insert_mask_watchpoint>,
+ <to_remove_mask_watchpoint>, <to_masked_watch_num_registers>: New
+ methods.
+ (target_insert_mask_watchpoint, target_remove_mask_watchpoint)
+ (target_masked_watch_num_registers): Add prototypes.
+
+
+ PR 12573
+ * dwarf2read.c (struct dwarf2_cu): New field has_loclist.
+ (producer_is_gcc_ge_4_0): New function.
+ (process_full_comp_unit): Set also symtab->locations_valid. Move the
+ symtab->language code.
+ (var_decode_location): Set cu->has_loclist.
+ * symtab.c (skip_prologue_sal): New variables saved_pc, force_skip and
+ skip. Intialize force_skip from locations_valid. Move the prologue
+ skipping code into two passes.
+ * symtab.h (struct symtab): Make the primary field a bitfield. New
+ field locations_valid.
+
+
+ * c-exp.y (qualified_name): Call destructor_name_p with $1.type.
+ (classify_inner_name): Call cp_lookup_nested_type with
+ yylval.tsym.type.
+ * cp-namespace.c (cp_lookup_nested_type): New variable
+ saved_parent_type. Call CHECK_TYPEDEF for parent_type. Call
+ type_name_no_tag_or_error with saved_parent_type.
+ * dwarf2read.c (load_partial_dies): Read in any children of
+ DW_TAG_typedef with complaint in such case.
+ * gdbtypes.c (type_name_no_tag_or_error): New function.
+ * gdbtypes.h (type_name_no_tag_or_error): New prototype.
+ * valops.c (destructor_name_p): New comment for parameter type. Remove
+ type const. Make dname and cp const. Call type_name_no_tag_or_error.
+ * value.h (destructor_name_p): Remove type const.
+
+
+ * symtab.c (compare_symbol_name): New function.
+ (completion_list_add_name, expand_partial_symbol_name): Call it,
+ remove the variable ncmp.
+ (default_make_symbol_completion_list_break_on): Reduce SYM_TEXT_LEN,
+ gdb_assert it.
+
+
+ Demote to sw watchpoint only in update_watchpoint.
+ * breakpoint.c (update_watchpoint): Change between software and
+ hardware watchpoint for all kinds of watchpoints, not just
+ read/write ones. Determine b->exact value here instead of
+ in watch_command_1. Error out if there are not enough resources
+ for a read or access hardware watchpoint.
+ (watch_command_1): Remove logic of checking whether there are
+ enough resources available, since update_watchpoint will do that
+ work now. Don't set b->exact here. Catch exceptions thrown by
+ update_watchpoint and delete the watchpoint.
+ (can_use_hardware_watchpoint): Remove exact_watchpoints argument.
+ Use target_exact_watchpoints instead.
+ (delete_breakpoint): Notify observers only if deleted watchpoint
+ has a breakpoint number assigned to it.
+
+
+ * MAINTAINERS: Add myself as a write-after-approval maintainer.
+
+
+ * i386-tdep.c (i386_in_stack_tramp_p, i386_stack_tramp_frame_sniffer):
+ New functions.
+ (i386_stack_tramp_frame_unwind): New static global.
+ (i386_match_pattern): New function, extracted from i386_match_insn.
+ (i386_match_insn): Use i386_match_pattern.
+ (i386_match_insn_block): New function.
+ (i386_tramp_chain_in_reg_insns)
+ (i386_tramp_chain_on_stack_insns): New static variables.
+ (i386_gdbarch_init): Add i386_stack_tramp_frame_unwind to list
+ of unwinders.
+
+
+ * configure.host (xscale*): Don't handle target.
+ * configure.tgt (thumb*-*-* | strongarm*-*-* | xscale-*-*): Don't
+ handle targets.
+
+
+ * gdb_wait.h: remove WAITTYPE and WCOREDUMP.
+
+
+ Revert:
+ | * elfread.c (elf_symtab_read): Stop memory leak.
+
* nto-tdep.c (nto_target): Replace deprecated call to