aboutsummaryrefslogtreecommitdiff
path: root/gdb/record-full.c
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2018-06-28 20:18:24 +0100
committerPedro Alves <palves@redhat.com>2018-06-28 17:12:07 +0100
commitf2ffa92bbce9dd5fbedc138ac2a3bc8a88327d09 (patch)
tree82502f3011afcdbad7b679a956cea3d1a4f203b2 /gdb/record-full.c
parentecdc3a72c89e43e0e13c5478723b4f70b3964e9f (diff)
downloadgdb-f2ffa92bbce9dd5fbedc138ac2a3bc8a88327d09.zip
gdb-f2ffa92bbce9dd5fbedc138ac2a3bc8a88327d09.tar.gz
gdb-f2ffa92bbce9dd5fbedc138ac2a3bc8a88327d09.tar.bz2
gdb: Eliminate the 'stop_pc' global
In my multi-target work, I need to add a few more scoped_restore_current_thread and switch_to_thread calls in some places, and in some lower-level places I was fighting against the fact that switch_to_thread reads/refreshes the stop_pc global. Instead of piling on workarounds, let's just finally eliminate the stop_pc global. We already have the per-thread thread_info->suspend.stop_pc field, so it's mainly a matter of using that more/instead. gdb/ChangeLog: 2018-06-28 Pedro Alves <palves@redhat.com> * gdbthread.h (struct thread_suspend_state) <stop_pc>: Extend comments. (switch_to_thread_no_regs): Adjust comment. * infcmd.c (stop_pc): Delete. (post_create_inferior, info_program_command): Replace references to stop_pc with references to thread_info->suspend.stop_pc. * inferior.h (stop_pc): Delete declaration. * infrun.c (proceed, handle_syscall_event, fill_in_stop_func) (handle_inferior_event_1, handle_signal_stop) (process_event_stop_test, keep_going_stepped_thread) (handle_step_into_function, handle_step_into_function_backward) (print_stop_location): Replace references to stop_pc with references to thread_info->suspend.stop_pc. (struct infcall_suspend_state) <stop_pc>: Delete field. (save_infcall_suspend_state, restore_infcall_suspend_state): Remove references to inf_stat->stop_pc. * linux-fork.c (fork_load_infrun_state): Likewise. * record-btrace.c (record_btrace_set_replay): Likewise. * record-full.c (record_full_goto_entry): Likewise. * remote.c (print_one_stopped_thread): Likewise. * target.c (target_resume): Extend comment. * thread.c (set_executing_thread): New. (set_executing): Use it. (switch_to_thread_no_regs, switch_to_no_thread, switch_to_thread): Remove references to stop_pc.
Diffstat (limited to 'gdb/record-full.c')
-rw-r--r--gdb/record-full.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gdb/record-full.c b/gdb/record-full.c
index 23bab31..4d8988d 100644
--- a/gdb/record-full.c
+++ b/gdb/record-full.c
@@ -2011,7 +2011,8 @@ record_full_goto_entry (struct record_full_entry *p)
registers_changed ();
reinit_frame_cache ();
- stop_pc = regcache_read_pc (get_current_regcache ());
+ inferior_thread ()->suspend.stop_pc
+ = regcache_read_pc (get_current_regcache ());
print_stack_frame (get_selected_frame (NULL), 1, SRC_AND_LOC, 1);
}