Change print_recreate_thread to a method

This changes print_recreate_thread to be a method on breakpoint.  This
function is only used as a helper by print_recreate methods, so I
thought this transformation made sense.
This commit is contained in:
Tom Tromey 2022-04-30 07:49:11 -06:00
parent dd9cd55e99
commit 04d0163c3f
7 changed files with 27 additions and 26 deletions

View file

@ -12519,7 +12519,7 @@ ada_catchpoint::print_recreate (struct ui_file *fp)
default: default:
internal_error (__FILE__, __LINE__, _("unexpected catchpoint type")); internal_error (__FILE__, __LINE__, _("unexpected catchpoint type"));
} }
print_recreate_thread (this, fp); print_recreate_thread (fp);
} }
/* See ada-lang.h. */ /* See ada-lang.h. */

View file

@ -144,7 +144,7 @@ void
exec_catchpoint::print_recreate (struct ui_file *fp) exec_catchpoint::print_recreate (struct ui_file *fp)
{ {
gdb_printf (fp, "catch exec"); gdb_printf (fp, "catch exec");
print_recreate_thread (this, fp); print_recreate_thread (fp);
} }
/* This function attempts to parse an optional "if <cond>" clause /* This function attempts to parse an optional "if <cond>" clause

View file

@ -172,7 +172,7 @@ void
fork_catchpoint::print_recreate (struct ui_file *fp) fork_catchpoint::print_recreate (struct ui_file *fp)
{ {
gdb_printf (fp, "catch %s", is_vfork ? "vfork" : "fork"); gdb_printf (fp, "catch %s", is_vfork ? "vfork" : "fork");
print_recreate_thread (this, fp); print_recreate_thread (fp);
} }
static void static void

View file

@ -331,7 +331,7 @@ syscall_catchpoint::print_recreate (struct ui_file *fp)
gdb_printf (fp, " %d", s.number); gdb_printf (fp, " %d", s.number);
} }
print_recreate_thread (this, fp); print_recreate_thread (fp);
} }
/* Returns non-zero if 'b' is a syscall catchpoint. */ /* Returns non-zero if 'b' is a syscall catchpoint. */

View file

@ -338,7 +338,7 @@ exception_catchpoint::print_recreate (struct ui_file *fp)
gdb_printf (fp, "rethrow"); gdb_printf (fp, "rethrow");
break; break;
} }
print_recreate_thread (this, fp); print_recreate_thread (fp);
} }
/* Implement the "allocate_location" method for throw and catch /* Implement the "allocate_location" method for throw and catch

View file

@ -9335,7 +9335,7 @@ ranged_breakpoint::print_recreate (struct ui_file *fp)
gdb_printf (fp, "break-range %s, %s", gdb_printf (fp, "break-range %s, %s",
event_location_to_string (location.get ()), event_location_to_string (location.get ()),
event_location_to_string (location_range_end.get ())); event_location_to_string (location_range_end.get ()));
print_recreate_thread (this, fp); print_recreate_thread (fp);
} }
/* Find the address where the end of the breakpoint range should be /* Find the address where the end of the breakpoint range should be
@ -9739,7 +9739,7 @@ watchpoint::print_recreate (struct ui_file *fp)
} }
gdb_printf (fp, " %s", exp_string.get ()); gdb_printf (fp, " %s", exp_string.get ());
print_recreate_thread (this, fp); print_recreate_thread (fp);
} }
/* Implement the "explains_signal" method for watchpoints. */ /* Implement the "explains_signal" method for watchpoints. */
@ -9927,7 +9927,7 @@ masked_watchpoint::print_recreate (struct ui_file *fp)
gdb_printf (fp, " %s mask 0x%s", exp_string.get (), gdb_printf (fp, " %s mask 0x%s", exp_string.get (),
phex (hw_wp_mask, sizeof (CORE_ADDR))); phex (hw_wp_mask, sizeof (CORE_ADDR)));
print_recreate_thread (this, fp); print_recreate_thread (fp);
} }
/* Tell whether the given watchpoint is a masked hardware watchpoint. */ /* Tell whether the given watchpoint is a masked hardware watchpoint. */
@ -11807,7 +11807,7 @@ ordinary_breakpoint::print_recreate (struct ui_file *fp)
if (loc == NULL && extra_string != NULL) if (loc == NULL && extra_string != NULL)
gdb_printf (fp, " %s", extra_string.get ()); gdb_printf (fp, " %s", extra_string.get ());
print_recreate_thread (this, fp); print_recreate_thread (fp);
} }
std::vector<symtab_and_line> std::vector<symtab_and_line>
@ -12055,7 +12055,7 @@ tracepoint::print_recreate (struct ui_file *fp)
_("unhandled tracepoint type %d"), (int) type); _("unhandled tracepoint type %d"), (int) type);
gdb_printf (fp, " %s", event_location_to_string (location.get ())); gdb_printf (fp, " %s", event_location_to_string (location.get ()));
print_recreate_thread (this, fp); print_recreate_thread (fp);
if (pass_count) if (pass_count)
gdb_printf (fp, " passcount %d\n", pass_count); gdb_printf (fp, " passcount %d\n", pass_count);
@ -12112,7 +12112,7 @@ dprintf_breakpoint::print_recreate (struct ui_file *fp)
gdb_printf (fp, "dprintf %s,%s", gdb_printf (fp, "dprintf %s,%s",
event_location_to_string (location.get ()), event_location_to_string (location.get ()),
extra_string.get ()); extra_string.get ());
print_recreate_thread (this, fp); print_recreate_thread (fp);
} }
/* Implement the "after_condition_true" method for dprintf. /* Implement the "after_condition_true" method for dprintf.
@ -14044,13 +14044,13 @@ get_tracepoint_by_number (const char **arg,
} }
void void
print_recreate_thread (struct breakpoint *b, struct ui_file *fp) breakpoint::print_recreate_thread (struct ui_file *fp) const
{ {
if (b->thread != -1) if (thread != -1)
gdb_printf (fp, " thread %d", b->thread); gdb_printf (fp, " thread %d", thread);
if (b->task != 0) if (task != 0)
gdb_printf (fp, " task %d", b->task); gdb_printf (fp, " task %d", task);
gdb_printf (fp, "\n"); gdb_printf (fp, "\n");
} }

View file

@ -586,15 +586,6 @@ struct breakpoint_ops
int, int, int, unsigned); int, int, int, unsigned);
}; };
/* Helper for breakpoint_ops->print_recreate implementations. Prints
the "thread" or "task" condition of B, and then a newline.
Necessary because most breakpoint implementations accept
thread/task conditions at the end of the spec line, like "break foo
thread 1", which needs outputting before any breakpoint-type
specific extra command necessary for B's recreation. */
extern void print_recreate_thread (struct breakpoint *b, struct ui_file *fp);
enum watchpoint_triggered enum watchpoint_triggered
{ {
/* This watchpoint definitely did not trigger. */ /* This watchpoint definitely did not trigger. */
@ -742,7 +733,6 @@ struct breakpoint
/* Nothing to do. */ /* Nothing to do. */
} }
/* Return a range of this breakpoint's locations. */ /* Return a range of this breakpoint's locations. */
bp_location_range locations (); bp_location_range locations ();
@ -846,6 +836,17 @@ struct breakpoint
/* Same as py_bp_object, but for Scheme. */ /* Same as py_bp_object, but for Scheme. */
gdbscm_breakpoint_object *scm_bp_object = NULL; gdbscm_breakpoint_object *scm_bp_object = NULL;
protected:
/* Helper for breakpoint_ops->print_recreate implementations. Prints
the "thread" or "task" condition of B, and then a newline.
Necessary because most breakpoint implementations accept
thread/task conditions at the end of the spec line, like "break foo
thread 1", which needs outputting before any breakpoint-type
specific extra command necessary for B's recreation. */
void print_recreate_thread (struct ui_file *fp) const;
}; };
/* The structure to be inherit by all kinds of breakpoints (real /* The structure to be inherit by all kinds of breakpoints (real