From 9aed480c3a725d3651d9035cba05c2daaeb5d7d0 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Mon, 28 Sep 2020 19:38:25 -0600 Subject: [PATCH] Turn target_have_steppable_watchpoint into function This changes the object-like macro target_have_steppable_watchpoint into an inline function. gdb/ChangeLog 2020-09-28 Tom Tromey * 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. --- gdb/ChangeLog | 7 +++++++ gdb/infrun.c | 6 +++--- gdb/procfs.c | 2 +- gdb/target.h | 7 +++++-- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index fb533aea582..fcfa751fd7f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2020-09-28 Tom Tromey + + * 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 * infrun.c (set_schedlock_func): Update. diff --git a/gdb/infrun.c b/gdb/infrun.c index 17b406d6a92..daf10417842 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 a06f0357ec3..c017f4a1551 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 9ebb0c3f6d0..695f1b2b7f6 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. */ -- 2.30.2