From: Tom Tromey Date: Mon, 17 Jan 2022 00:27:00 +0000 (-0700) Subject: Merge probe and ordinary tracepoints X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8d89123dc22188d5560f452bc52baba50d154a91;p=binutils-gdb.git 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. --- diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index c7fa53c53e2..ecea7024624 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -12273,6 +12273,9 @@ std::vector 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 -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;