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