diff options
author | Pedro Alves <pedro@palves.net> | 2022-05-07 01:23:03 +0100 |
---|---|---|
committer | Pedro Alves <pedro@palves.net> | 2022-05-20 20:41:01 +0100 |
commit | acd0955bc118d14dd32c08fd8a6b2ca7fa4e294c (patch) | |
tree | 34b6d6ed22c9fb997aea501d00d8376093113b64 /gdb/break-catch-syscall.c | |
parent | 6e14e4412b670d093d74b90e5d4adcfaedb76d3f (diff) |
Make catchpoint inherit breakpoint, eliminate init_raw_breakpoint
struct catchpoint's ctor currently calls init_raw_breakpoint, which is
a bit weird, as that ctor-like function takes a sal argument, but
catchpoints don't have code locations.
Instead, make struct catchpoint's ctor add the catchpoint's dummy
location using add_dummy_location.
init_raw_breakpoint uses add_location under the hood, and with a dummy
sal it would ultimately use the breakpoint's gdbarch for the
location's gdbarch, so replace the references to loc->gdbarch (which
is now NULL) in syscall_catchpoint to references to the catchpoint's
gdbarch.
struct catchpoint's ctor was the last user of init_raw_breakpoint, so
this commit eliminates the latter.
Since catchpoint locations aren't code locations, make struct
catchpoint inherit struct breakpoint instead of base_breakpoint. This
let's us delete the tracepoint::re_set override too.
Change-Id: Ib428bf71efb09fdaf399c56e4372b0f41d9c5869
Diffstat (limited to 'gdb/break-catch-syscall.c')
-rw-r--r-- | gdb/break-catch-syscall.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/gdb/break-catch-syscall.c b/gdb/break-catch-syscall.c index af55ecb1b5..06d48466de 100644 --- a/gdb/break-catch-syscall.c +++ b/gdb/break-catch-syscall.c @@ -197,7 +197,7 @@ syscall_catchpoint::print_it (const bpstat *bs) const must print "called syscall" or "returned from syscall". */ struct target_waitstatus last; struct syscall s; - struct gdbarch *gdbarch = bs->bp_location_at->gdbarch; + struct gdbarch *gdbarch = b->gdbarch; get_last_target_status (nullptr, nullptr, &last); @@ -242,7 +242,7 @@ syscall_catchpoint::print_one (bp_location **last_loc) const { struct value_print_options opts; struct ui_out *uiout = current_uiout; - struct gdbarch *gdbarch = loc->gdbarch; + struct gdbarch *gdbarch = loc->owner->gdbarch; get_user_print_options (&opts); /* Field 4, the address, is omitted (which makes the columns not @@ -293,7 +293,7 @@ syscall_catchpoint::print_one (bp_location **last_loc) const void syscall_catchpoint::print_mention () const { - struct gdbarch *gdbarch = loc->gdbarch; + struct gdbarch *gdbarch = loc->owner->gdbarch; if (!syscalls_to_be_caught.empty ()) { |