diff options
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/infrun.c | 6 | ||||
-rw-r--r-- | gdb/procfs.c | 2 | ||||
-rw-r--r-- | gdb/target.h | 7 |
4 files changed, 16 insertions, 6 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index fb533ae..fcfa751 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,12 @@ 2020-09-28 Tom Tromey <tom@tromey.com> + * infrun.c (displaced_step_fixup, thread_still_needs_step_over) + (handle_signal_stop): Update. + * procfs.c (procfs_target::insert_watchpoint): Update. + * target.h (target_have_steppable_watchpoint): Now a function. + +2020-09-28 Tom Tromey <tom@tromey.com> + * infrun.c (set_schedlock_func): Update. * target.h (target_can_lock_scheduler): Now a function. diff --git a/gdb/infrun.c b/gdb/infrun.c index 17b406d..daf1041 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -1889,7 +1889,7 @@ displaced_step_fixup (thread_info *event_thread, enum gdb_signal signal) if (signal == GDB_SIGNAL_TRAP && !(target_stopped_by_watchpoint () && (gdbarch_have_nonsteppable_watchpoint (displaced->step_gdbarch) - || target_have_steppable_watchpoint))) + || target_have_steppable_watchpoint ()))) { /* Fix up the resulting state. */ gdbarch_displaced_step_fixup (displaced->step_gdbarch, @@ -2811,7 +2811,7 @@ thread_still_needs_step_over (struct thread_info *tp) what |= STEP_OVER_BREAKPOINT; if (tp->stepping_over_watchpoint - && !target_have_steppable_watchpoint) + && !target_have_steppable_watchpoint ()) what |= STEP_OVER_WATCHPOINT; return what; @@ -5933,7 +5933,7 @@ handle_signal_stop (struct execution_control_state *ecs) /* If necessary, step over this watchpoint. We'll be back to display it in a moment. */ if (stopped_by_watchpoint - && (target_have_steppable_watchpoint + && (target_have_steppable_watchpoint () || gdbarch_have_nonsteppable_watchpoint (gdbarch))) { /* At this point, we are stopped at an instruction which has diff --git a/gdb/procfs.c b/gdb/procfs.c index a06f035..c017f4a 100644 --- a/gdb/procfs.c +++ b/gdb/procfs.c @@ -3085,7 +3085,7 @@ procfs_target::insert_watchpoint (CORE_ADDR addr, int len, enum target_hw_bp_type type, struct expression *cond) { - if (!target_have_steppable_watchpoint + if (!target_have_steppable_watchpoint () && !gdbarch_have_nonsteppable_watchpoint (target_gdbarch ())) /* When a hardware watchpoint fires off the PC will be left at the instruction following the one which caused the diff --git a/gdb/target.h b/gdb/target.h index 9ebb0c3..695f1b2 100644 --- a/gdb/target.h +++ b/gdb/target.h @@ -2009,8 +2009,11 @@ extern gdb::byte_vector target_thread_info_to_thread_handle /* Non-zero if we have steppable watchpoints */ -#define target_have_steppable_watchpoint \ - (current_top_target ()->have_steppable_watchpoint ()) +static inline bool +target_have_steppable_watchpoint () +{ + return current_top_target ()->have_steppable_watchpoint (); +} /* Provide defaults for hardware watchpoint functions. */ |