RAII-fy make_cleanup_restore_current_thread & friends
[external/binutils.git] / gdb / ChangeLog
index de4d90f..6e3a51e 100644 (file)
@@ -1,3 +1,98 @@
+2017-05-04  Pedro Alves  <palves@redhat.com>
+
+       * Makefile.in (SFILES): Add progspace-and-thread.c.
+       (HFILES_NO_SRCDIR): Add progspace-and-thread.h.
+       (COMMON_OBS): Add progspace-and-thread.o.
+       * breakpoint.c: Include "progspace-and-thread.h".
+       (update_inserted_breakpoint_locations)
+       (insert_breakpoint_locations, create_longjmp_master_breakpoint):
+       Use scoped_restore_current_pspace_and_thread.
+       (create_std_terminate_master_breakpoint): Use
+       scoped_restore_current_program_space.
+       (remove_breakpoint): Use scoped_restore_current_pspace_and_thread.
+       (print_breakpoint_location): Use
+       scoped_restore_current_program_space.
+       (bp_loc_is_permanent): Use
+       scoped_restore_current_pspace_and_thread.
+       (resolve_sal_pc): Use scoped_restore_current_pspace_and_thread.
+       (download_tracepoint_locations): Use
+       scoped_restore_current_pspace_and_thread.
+       (breakpoint_re_set): Use scoped_restore_current_pspace_and_thread.
+       * exec.c (exec_close_1): Use scoped_restore_current_program_space.
+       (enum step_over_calls_kind): Moved from inferior.h.
+       (class scoped_restore_current_thread): New class.
+       * gdbthread.h (make_cleanup_restore_current_thread): Delete
+       declaration.
+       (scoped_restore_current_thread): New class.
+       * infcmd.c: Include "common/gdb_optional.h".
+       (continue_1, proceed_after_attach): Use
+       scoped_restore_current_thread.
+       (notice_new_inferior): Use scoped_restore_current_thread.
+       * inferior.c: Include "progspace-and-thread.h".
+       (restore_inferior, save_current_inferior): Delete.
+       (add_inferior_command, clone_inferior_command): Use
+       scoped_restore_current_pspace_and_thread.
+       * inferior.h (scoped_restore_current_inferior): New class.
+       * infrun.c: Include "progspace-and-thread.h" and
+       "common/gdb_optional.h".
+       (follow_fork_inferior): Use
+       scoped_restore_current_pspace_and_thread.
+       (scoped_restore_exited_inferior): New class.
+       (handle_vfork_child_exec_or_exit): Use
+       scoped_restore_exited_inferior,
+       scoped_restore_current_pspace_and_thread,
+       scoped_restore_current_thread and scoped_restore.
+       (fetch_inferior_event): Use scoped_restore_current_thread.
+       * linespec.c (decode_line_full, decode_line_1): Use
+       scoped_restore_current_program_space.
+       * mi/mi-main.c: Include "progspace-and-thread.h".
+       (exec_continue): Use scoped_restore_current_thread.
+       (mi_cmd_exec_run): Use scoped_restore_current_pspace_and_thread.
+       (mi_cmd_trace_frame_collected): Use scoped_restore_current_thread.
+       * proc-service.c (ps_pglobal_lookup): Use
+       scoped_restore_current_program_space.
+       * progspace-and-thread.c: New file.
+       * progspace-and-thread.h: New file.
+       * progspace.c (release_program_space, clone_program_space): Use
+       scoped_restore_current_program_space.
+       (restore_program_space, save_current_program_space)
+       (save_current_space_and_thread): Delete.
+       (switch_to_program_space_and_thread): Moved to
+       progspace-and-thread.c.
+       * progspace.h (save_current_program_space)
+       (save_current_space_and_thread): Delete declarations.
+       (scoped_restore_current_program_space): New class.
+       * remote.c (remote_btrace_maybe_reopen): Use
+       scoped_restore_current_thread.
+       * symtab.c: Include "progspace-and-thread.h".
+       (skip_prologue_sal): Use scoped_restore_current_pspace_and_thread.
+       * thread.c (print_thread_info_1): Use
+       scoped_restore_current_thread.
+       (struct current_thread_cleanup): Delete.
+       (do_restore_current_thread_cleanup)
+       (restore_current_thread_cleanup_dtor): Rename/convert both to ...
+       (scoped_restore_current_thread::~scoped_restore_current_thread):
+       ... this new dtor.
+       (make_cleanup_restore_current_thread): Rename/convert to ...
+       (scoped_restore_current_thread::scoped_restore_current_thread):
+       ... this new ctor.
+       (thread_apply_all_command): Use scoped_restore_current_thread.
+       (thread_apply_command): Use scoped_restore_current_thread.
+       * tracepoint.c (tdump_command): Use scoped_restore_current_thread.
+       * varobj.c (value_of_root_1): Use scoped_restore_current_thread.
+
+2017-05-04  Pedro Alves  <palves@redhat.com>
+
+       * thread.c (make_cleanup_restore_current_thread): Move
+       find_thread_ptid call before the is_stopped call.  Assert that the
+       thread is found.  Replace is_stopped call by checking the thread's
+       state directly.  Remove unnecessary NULL-thread check.
+
+2017-05-04  Pedro Alves  <palves@redhat.com>
+
+       * corelow.c (thread_section_name): New class.
+       (get_core_register_section, get_core_siginfo): Use it.
+
 2017-05-04  Andreas Arnez  <arnez@linux.vnet.ibm.com>
 
        * corelow.c (sniff_core_bfd): Remove extra semicolon.