Merge probe and ordinary tracepoints

Right now, probe tracepoints are handled by a separate ops object.
However, they differ only in a small way from ordinary tracepoints,
and furthermore can be distinguished by their event location.

This patch merges the two cases, just as was done for breakpoints.
This commit is contained in:
Tom Tromey 2022-01-16 17:27:00 -07:00
parent 5d926615e9
commit 8d89123dc2

View File

@ -12273,6 +12273,9 @@ std::vector<symtab_and_line>
tracepoint::decode_location (struct event_location *location,
struct program_space *search_pspace)
{
if (event_location_type (location) == PROBE_LOCATION)
return bkpt_probe_decode_location (this, location, search_pspace);
return decode_location_default (this, location, search_pspace);
}
@ -12288,15 +12291,6 @@ tracepoint_probe_create_sals_from_location
bkpt_probe_create_sals_from_location (location, canonical, type_wanted);
}
static std::vector<symtab_and_line>
tracepoint_probe_decode_location (struct breakpoint *b,
struct event_location *location,
struct program_space *search_pspace)
{
/* We use the same method for breakpoint on probes. */
return bkpt_probe_decode_location (b, location, search_pspace);
}
void
dprintf_breakpoint::re_set ()
{
@ -14582,7 +14576,6 @@ initialize_breakpoint_ops (void)
ops = &tracepoint_probe_breakpoint_ops;
*ops = vtable_breakpoint_ops;
ops->create_sals_from_location = tracepoint_probe_create_sals_from_location;
ops->decode_location = tracepoint_probe_decode_location;
/* Static tracepoints with marker (`-m'). */
ops = &strace_marker_breakpoint_ops;