aboutsummaryrefslogtreecommitdiff
path: root/gdb/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/ChangeLog')
-rw-r--r--gdb/ChangeLog123
1 files changed, 123 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 8512cb4..f39730f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,128 @@
2020-12-04 Simon Marchi <simon.marchi@efficios.com>
+ * displaced-stepping.h (struct
+ displaced_step_copy_insn_closure): Adjust comments.
+ (struct displaced_step_inferior_state) <step_thread,
+ step_gdbarch, step_closure, step_original, step_copy,
+ step_saved_copy>: Remove fields.
+ (struct displaced_step_thread_state): New.
+ (struct displaced_step_buffer): New.
+ * displaced-stepping.c (displaced_step_buffer::prepare): New.
+ (write_memory_ptid): Move from infrun.c.
+ (displaced_step_instruction_executed_successfully): New,
+ factored out of displaced_step_finish.
+ (displaced_step_buffer::finish): New.
+ (displaced_step_buffer::copy_insn_closure_by_addr): New.
+ (displaced_step_buffer::restore_in_ptid): New.
+ * gdbarch.sh (displaced_step_location): Remove.
+ (displaced_step_prepare, displaced_step_finish,
+ displaced_step_copy_insn_closure_by_addr,
+ displaced_step_restore_all_in_ptid): New.
+ * gdbarch.c: Re-generate.
+ * gdbarch.h: Re-generate.
+ * gdbthread.h (class thread_info) <displaced_step_state>: New
+ field.
+ (thread_step_over_chain_remove): New declaration.
+ (thread_step_over_chain_next): New declaration.
+ (thread_step_over_chain_length): New declaration.
+ * thread.c (thread_step_over_chain_remove): Make non-static.
+ (thread_step_over_chain_next): New.
+ (global_thread_step_over_chain_next): Use
+ thread_step_over_chain_next.
+ (thread_step_over_chain_length): New.
+ (global_thread_step_over_chain_enqueue): Add debug print.
+ (global_thread_step_over_chain_remove): Add debug print.
+ * infrun.h (get_displaced_step_copy_insn_closure_by_addr):
+ Remove.
+ * infrun.c (get_displaced_stepping_state): New.
+ (displaced_step_in_progress_any_inferior): Remove.
+ (displaced_step_in_progress_thread): Adjust.
+ (displaced_step_in_progress): Adjust.
+ (displaced_step_in_progress_any_thread): New.
+ (get_displaced_step_copy_insn_closure_by_addr): Remove.
+ (gdbarch_supports_displaced_stepping): Use
+ gdbarch_displaced_step_prepare_p.
+ (displaced_step_reset): Change parameter from inferior to
+ thread.
+ (displaced_step_prepare_throw): Implement using
+ gdbarch_displaced_step_prepare.
+ (write_memory_ptid): Move to displaced-step.c.
+ (displaced_step_restore): Remove.
+ (displaced_step_finish): Implement using
+ gdbarch_displaced_step_finish.
+ (start_step_over): Allow starting more than one displaced step.
+ (prepare_for_detach): Handle possibly multiple threads doing
+ displaced steps.
+ (handle_inferior_event): Handle possibility that fork event
+ happens while another thread displaced steps.
+ * linux-tdep.h (linux_displaced_step_prepare): New.
+ (linux_displaced_step_finish): New.
+ (linux_displaced_step_copy_insn_closure_by_addr): New.
+ (linux_displaced_step_restore_all_in_ptid): New.
+ (linux_init_abi): Add supports_displaced_step parameter.
+ * linux-tdep.c (struct linux_info) <disp_step_buf>: New field.
+ (linux_displaced_step_prepare): New.
+ (linux_displaced_step_finish): New.
+ (linux_displaced_step_copy_insn_closure_by_addr): New.
+ (linux_displaced_step_restore_all_in_ptid): New.
+ (linux_init_abi): Add supports_displaced_step parameter,
+ register displaced step methods if true.
+ (_initialize_linux_tdep): Register inferior_execd observer.
+ * amd64-linux-tdep.c (amd64_linux_init_abi_common): Add
+ supports_displaced_step parameter, adjust call to
+ linux_init_abi. Remove call to
+ set_gdbarch_displaced_step_location.
+ (amd64_linux_init_abi): Adjust call to
+ amd64_linux_init_abi_common.
+ (amd64_x32_linux_init_abi): Likewise.
+ * aarch64-linux-tdep.c (aarch64_linux_init_abi): Adjust call to
+ linux_init_abi. Remove call to
+ set_gdbarch_displaced_step_location.
+ * arm-linux-tdep.c (arm_linux_init_abi): Likewise.
+ * i386-linux-tdep.c (i386_linux_init_abi): Likewise.
+ * alpha-linux-tdep.c (alpha_linux_init_abi): Adjust call to
+ linux_init_abi.
+ * arc-linux-tdep.c (arc_linux_init_osabi): Likewise.
+ * bfin-linux-tdep.c (bfin_linux_init_abi): Likewise.
+ * cris-linux-tdep.c (cris_linux_init_abi): Likewise.
+ * csky-linux-tdep.c (csky_linux_init_abi): Likewise.
+ * frv-linux-tdep.c (frv_linux_init_abi): Likewise.
+ * hppa-linux-tdep.c (hppa_linux_init_abi): Likewise.
+ * ia64-linux-tdep.c (ia64_linux_init_abi): Likewise.
+ * m32r-linux-tdep.c (m32r_linux_init_abi): Likewise.
+ * m68k-linux-tdep.c (m68k_linux_init_abi): Likewise.
+ * microblaze-linux-tdep.c (microblaze_linux_init_abi): Likewise.
+ * mips-linux-tdep.c (mips_linux_init_abi): Likewise.
+ * mn10300-linux-tdep.c (am33_linux_init_osabi): Likewise.
+ * nios2-linux-tdep.c (nios2_linux_init_abi): Likewise.
+ * or1k-linux-tdep.c (or1k_linux_init_abi): Likewise.
+ * riscv-linux-tdep.c (riscv_linux_init_abi): Likewise.
+ * s390-linux-tdep.c (s390_linux_init_abi_any): Likewise.
+ * sh-linux-tdep.c (sh_linux_init_abi): Likewise.
+ * sparc-linux-tdep.c (sparc32_linux_init_abi): Likewise.
+ * sparc64-linux-tdep.c (sparc64_linux_init_abi): Likewise.
+ * tic6x-linux-tdep.c (tic6x_uclinux_init_abi): Likewise.
+ * tilegx-linux-tdep.c (tilegx_linux_init_abi): Likewise.
+ * xtensa-linux-tdep.c (xtensa_linux_init_abi): Likewise.
+ * ppc-linux-tdep.c (ppc_linux_init_abi): Adjust call to
+ linux_init_abi. Remove call to
+ set_gdbarch_displaced_step_location.
+ * arm-tdep.c (arm_pc_is_thumb): Call
+ gdbarch_displaced_step_copy_insn_closure_by_addr instead of
+ get_displaced_step_copy_insn_closure_by_addr.
+ * rs6000-aix-tdep.c (rs6000_aix_init_osabi): Adjust calls to
+ clear gdbarch methods.
+ * rs6000-tdep.c (struct ppc_inferior_data): New structure.
+ (get_ppc_per_inferior): New function.
+ (ppc_displaced_step_prepare): New function.
+ (ppc_displaced_step_finish): New function.
+ (ppc_displaced_step_restore_all_in_ptid): New function.
+ (rs6000_gdbarch_init): Register new gdbarch methods.
+ * s390-tdep.c (s390_gdbarch_init): Don't call
+ set_gdbarch_displaced_step_location, set new gdbarch methods.
+
+2020-12-04 Simon Marchi <simon.marchi@efficios.com>
+
* Makefile.in (COMMON_SFILES): Add displaced-stepping.c.
* aarch64-tdep.h: Include displaced-stepping.h.
* displaced-stepping.h (struct displaced_step_copy_insn_closure):