Fix "catch syscall"
authorTom Tromey <tom@tromey.com>
Sat, 7 May 2022 16:07:36 +0000 (10:07 -0600)
committerTom Tromey <tom@tromey.com>
Sat, 7 May 2022 16:07:36 +0000 (10:07 -0600)
Simon pointed out that some recent patches of mine broke "catch
syscall".  Apparently I forgot to finish the conversion of this code
when removing init_catchpoint.  This patch completes the conversion
and fixes the bug.

gdb/break-catch-syscall.c

index d79ced47a12fb18e6e6b382b48f2175f0619646c..af55ecb1b5c0a7de37e6f466f45721cca5475b32 100644 (file)
 /* An instance of this type is used to represent a syscall
    catchpoint.  */
 
-struct syscall_catchpoint : public breakpoint
+struct syscall_catchpoint : public catchpoint
 {
-  syscall_catchpoint (struct gdbarch *gdbarch, std::vector<int> &&calls)
-    : breakpoint (gdbarch, bp_catchpoint),
+  syscall_catchpoint (struct gdbarch *gdbarch, bool tempflag,
+                     std::vector<int> &&calls)
+    : catchpoint (gdbarch, tempflag, nullptr),
       syscalls_to_be_caught (std::move (calls))
   {
   }
@@ -354,7 +355,7 @@ create_syscall_event_catchpoint (int tempflag, std::vector<int> &&filter)
   struct gdbarch *gdbarch = get_current_arch ();
 
   std::unique_ptr<syscall_catchpoint> c
-    (new syscall_catchpoint (gdbarch, std::move (filter)));
+    (new syscall_catchpoint (gdbarch, tempflag, std::move (filter)));
 
   install_breakpoint (0, std::move (c), 1);
 }