fbsd-nat: Add a low_prepare_to_resume virtual method.
authorJohn Baldwin <jhb@FreeBSD.org>
Tue, 22 Mar 2022 19:05:43 +0000 (12:05 -0700)
committerJohn Baldwin <jhb@FreeBSD.org>
Tue, 22 Mar 2022 19:05:43 +0000 (12:05 -0700)
This method can be overridden by architecture-specific targets to
perform additional work before a thread is resumed.

gdb/fbsd-nat.c
gdb/fbsd-nat.h

index 2bc7937a38bb5c4eba4cea47518d3b01954ee0dd..934fdbad6efb640fdfdeeb6adc2a5c0bbd9bd260 100644 (file)
@@ -1138,6 +1138,8 @@ fbsd_nat_target::resume (ptid_t ptid, int step, enum gdb_signal signo)
            perror_with_name (request == PT_RESUME ?
                              ("ptrace (PT_RESUME)") :
                              ("ptrace (PT_SUSPEND)"));
+         if (request == PT_RESUME)
+           low_prepare_to_resume (tp);
        }
     }
   else
@@ -1145,8 +1147,11 @@ fbsd_nat_target::resume (ptid_t ptid, int step, enum gdb_signal signo)
       /* If ptid is a wildcard, resume all matching threads (they won't run
         until the process is continued however).  */
       for (thread_info *tp : all_non_exited_threads (this, ptid))
-       if (ptrace (PT_RESUME, tp->ptid.lwp (), NULL, 0) == -1)
-         perror_with_name (("ptrace (PT_RESUME)"));
+       {
+         if (ptrace (PT_RESUME, tp->ptid.lwp (), NULL, 0) == -1)
+           perror_with_name (("ptrace (PT_RESUME)"));
+         low_prepare_to_resume (tp);
+       }
       ptid = inferior_ptid;
     }
 
index 6028aebfccc6bf837503a70df3000e76ac3f3604..82f7ee4794944e58336d7ecd5b874dea5c560603 100644 (file)
@@ -119,6 +119,10 @@ public:
   virtual void low_delete_thread (thread_info *)
   {}
 
+  /* Hook to call prior to resuming a thread.  */
+  virtual void low_prepare_to_resume (thread_info *)
+  {}
+
 protected:
 
   void post_startup_inferior (ptid_t) override;