public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 0/2] Change find_thread_ptid functions to be methods
@ 2023-03-27 16:53 Simon Marchi
  2023-03-27 16:53 ` [PATCH 1/2] gdb: make find_thread_ptid an inferior method Simon Marchi
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Simon Marchi @ 2023-03-27 16:53 UTC (permalink / raw)
  To: gdb-patches; +Cc: Simon Marchi

I thought it would make sense for the that the find_thread_ptid
functions to be methods of inferior and process_stratum_target.
Especially the inferior one, as it searches in data that is private
(conceptually) to the inferior class.  I changed the
process_stratum_target one too, while at it.

Simon Marchi (2):
  gdb: make find_thread_ptid an inferior method
  gdb: make find_thread_ptid a process_stratum_target method

 gdb/aarch64-tdep.c           |  4 +---
 gdb/ada-tasks.c              |  8 ++++----
 gdb/aix-thread.c             |  8 ++++----
 gdb/amd-dbgapi-target.c      |  4 ++--
 gdb/bsd-uthread.c            |  4 ++--
 gdb/btrace.c                 |  2 +-
 gdb/darwin-nat.c             |  2 +-
 gdb/fbsd-nat.c               |  2 +-
 gdb/gdbthread.h              |  7 -------
 gdb/gnu-nat.c                |  3 +--
 gdb/infcmd.c                 |  2 +-
 gdb/inferior.c               | 12 ++++++++++++
 gdb/inferior.h               |  3 +++
 gdb/infrun.c                 | 16 ++++++++--------
 gdb/linux-fork.c             |  2 +-
 gdb/linux-nat.c              | 14 +++++++-------
 gdb/linux-thread-db.c        | 14 +++++++-------
 gdb/mi/mi-interp.c           |  2 +-
 gdb/netbsd-nat.c             |  2 +-
 gdb/nto-procfs.c             |  6 +++---
 gdb/process-stratum-target.c | 11 +++++++++++
 gdb/process-stratum-target.h |  3 +++
 gdb/procfs.c                 |  6 +++---
 gdb/python/py-threadevent.c  |  3 +--
 gdb/ravenscar-thread.c       |  8 ++++----
 gdb/record-btrace.c          |  4 ++--
 gdb/remote.c                 | 18 +++++++++---------
 gdb/sol-thread.c             |  4 ++--
 gdb/thread-iter.c            |  2 +-
 gdb/thread.c                 | 35 +++++------------------------------
 gdb/windows-nat.c            |  4 ++--
 31 files changed, 104 insertions(+), 111 deletions(-)

-- 
2.40.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/2] gdb: make find_thread_ptid an inferior method
  2023-03-27 16:53 [PATCH 0/2] Change find_thread_ptid functions to be methods Simon Marchi
@ 2023-03-27 16:53 ` Simon Marchi
  2023-03-27 16:53 ` [PATCH 2/2] gdb: make find_thread_ptid a process_stratum_target method Simon Marchi
  2023-04-04 18:44 ` [PATCH 0/2] Change find_thread_ptid functions to be methods Tom Tromey
  2 siblings, 0 replies; 5+ messages in thread
From: Simon Marchi @ 2023-03-27 16:53 UTC (permalink / raw)
  To: gdb-patches; +Cc: Simon Marchi

From: Simon Marchi <simon.marchi@polymtl.ca>

Make find_thread_ptid (the overload that takes an inferior) a method of
struct inferior.

Change-Id: Ie5b9fa623ff35aa7ddb45e2805254fc8e83c9cd4
---
 gdb/ada-tasks.c             |  8 ++++----
 gdb/aix-thread.c            |  6 +++---
 gdb/btrace.c                |  2 +-
 gdb/gdbthread.h             |  3 ---
 gdb/inferior.c              | 12 ++++++++++++
 gdb/inferior.h              |  3 +++
 gdb/infrun.c                |  4 ++--
 gdb/linux-thread-db.c       |  2 +-
 gdb/python/py-threadevent.c |  3 +--
 gdb/ravenscar-thread.c      |  2 +-
 gdb/sol-thread.c            |  4 ++--
 gdb/thread.c                | 22 ++++------------------
 12 files changed, 34 insertions(+), 37 deletions(-)

diff --git a/gdb/ada-tasks.c b/gdb/ada-tasks.c
index b14d159df149..f107d4e4c286 100644
--- a/gdb/ada-tasks.c
+++ b/gdb/ada-tasks.c
@@ -1177,7 +1177,7 @@ print_ada_task_info (struct ui_out *uiout,
       if (uiout->is_mi_like_p ())
 	{
 	  thread_info *thread = (ada_task_is_alive (task_info)
-				 ? find_thread_ptid (inf, task_info->ptid)
+				 ? inf->find_thread (task_info->ptid)
 				 : nullptr);
 
 	  if (thread != NULL)
@@ -1393,7 +1393,7 @@ task_command_1 (const char *taskno_str, int from_tty, struct inferior *inf)
      computed if target_get_ada_task_ptid has not been implemented for
      our target (yet).  Rather than cause an assertion error in that case,
      it's nicer for the user to just refuse to perform the task switch.  */
-  thread_info *tp = find_thread_ptid (inf, task_info->ptid);
+  thread_info *tp = inf->find_thread (task_info->ptid);
   if (tp == NULL)
     error (_("Unable to compute thread ID for task %s.\n"
 	     "Cannot switch to this task."),
@@ -1577,7 +1577,7 @@ task_apply_all_command (const char *cmd, int from_tty)
       if (!ada_task_is_alive (&task))
 	continue;
 
-      thread_info *tp = find_thread_ptid (inf, task.ptid);
+      thread_info *tp = inf->find_thread (task.ptid);
       if (tp == nullptr)
 	warning (_("Unable to compute thread ID for task %s.\n"
 		   "Cannot switch to this task."),
@@ -1627,7 +1627,7 @@ task_apply_command (const char *tidlist, int from_tty)
 	  if (!ada_task_is_alive (&task))
 	    continue;
 
-	  thread_info *tp = find_thread_ptid (inf, task.ptid);
+	  thread_info *tp = inf->find_thread (task.ptid);
 	  if (tp == nullptr)
 	    warning (_("Unable to compute thread ID for task %s.\n"
 		       "Cannot switch to this task."),
diff --git a/gdb/aix-thread.c b/gdb/aix-thread.c
index df843d3c4873..f4ccfb2b364d 100644
--- a/gdb/aix-thread.c
+++ b/gdb/aix-thread.c
@@ -1172,7 +1172,7 @@ aix_thread_target::resume (ptid_t ptid, int step, enum gdb_signal sig)
     }
   else
     {
-      thread = find_thread_ptid (current_inferior (), ptid);
+      thread = current_inferior ()->find_thread (ptid);
       if (!thread)
 	error (_("aix-thread resume: unknown pthread %ld"),
 	       ptid.lwp ());
@@ -1566,7 +1566,7 @@ aix_thread_target::fetch_registers (struct regcache *regcache, int regno)
     beneath ()->fetch_registers (regcache, regno);
   else
     {
-      thread = find_thread_ptid (current_inferior (), regcache->ptid ());
+      thread = current_inferior ()->find_thread (regcache->ptid ());
       aix_thread_info *priv = get_aix_thread_info (thread);
       tid = priv->tid;
 
@@ -2032,7 +2032,7 @@ aix_thread_target::store_registers (struct regcache *regcache, int regno)
     beneath ()->store_registers (regcache, regno);
   else
     {
-      thread = find_thread_ptid (current_inferior (), regcache->ptid ());
+      thread = current_inferior ()->find_thread (regcache->ptid ());
       aix_thread_info *priv = get_aix_thread_info (thread);
       tid = priv->tid;
 
diff --git a/gdb/btrace.c b/gdb/btrace.c
index 38d3882c1540..dbdcea0a8eaf 100644
--- a/gdb/btrace.c
+++ b/gdb/btrace.c
@@ -3246,7 +3246,7 @@ maint_btrace_packet_history_cmd (const char *arg, int from_tty)
   struct btrace_thread_info *btinfo;
   unsigned int size, begin, end, from, to;
 
-  thread_info *tp = find_thread_ptid (current_inferior (), inferior_ptid);
+  thread_info *tp = current_inferior ()->find_thread (inferior_ptid);
   if (tp == NULL)
     error (_("No thread."));
 
diff --git a/gdb/gdbthread.h b/gdb/gdbthread.h
index 848daa94410a..81e4afd24c25 100644
--- a/gdb/gdbthread.h
+++ b/gdb/gdbthread.h
@@ -672,9 +672,6 @@ extern bool in_thread_list (process_stratum_target *targ, ptid_t ptid);
    global id, not the system's).  */
 extern int valid_global_thread_id (int global_id);
 
-/* Find (non-exited) thread PTID of inferior INF.  */
-extern thread_info *find_thread_ptid (inferior *inf, ptid_t ptid);
-
 /* Search function to lookup a (non-exited) thread by 'ptid'.  */
 extern struct thread_info *find_thread_ptid (process_stratum_target *targ,
 					     ptid_t ptid);
diff --git a/gdb/inferior.c b/gdb/inferior.c
index a1e3c79d8a20..6eb9f3ff23b9 100644
--- a/gdb/inferior.c
+++ b/gdb/inferior.c
@@ -216,6 +216,18 @@ add_inferior (int pid)
 
 /* See inferior.h.  */
 
+thread_info *
+inferior::find_thread (ptid_t ptid)
+{
+  auto it = this->ptid_thread_map.find (ptid);
+  if (it != this->ptid_thread_map.end ())
+    return it->second;
+  else
+    return nullptr;
+}
+
+/* See inferior.h.  */
+
 void
 inferior::clear_thread_list (bool silent)
 {
diff --git a/gdb/inferior.h b/gdb/inferior.h
index 72034cc4ffbc..633916eb7c1f 100644
--- a/gdb/inferior.h
+++ b/gdb/inferior.h
@@ -490,6 +490,9 @@ class inferior : public refcounted_object,
   inline safe_inf_threads_range threads_safe ()
   { return safe_inf_threads_range (this->thread_list.begin ()); }
 
+  /* Find (non-exited) thread PTID of this inferior.  */
+  thread_info *find_thread (ptid_t ptid);
+
   /* Delete all threads in the thread list.  If SILENT, exit threads
      silently.  */
   void clear_thread_list (bool silent);
diff --git a/gdb/infrun.c b/gdb/infrun.c
index ee812baf8dac..334080142f15 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -645,7 +645,7 @@ holding the child stopped.  Try \"set detach-on-fork\" or \
 
      The former case will have pending_follow cleared, the later will have
      pending_follow set.  */
-  thread_info *parent_thread = find_thread_ptid (parent_inf, parent_ptid);
+  thread_info *parent_thread = parent_inf->find_thread (parent_ptid);
   gdb_assert (parent_thread != nullptr);
   parent_thread->pending_follow.set_spurious ();
 
@@ -3730,7 +3730,7 @@ do_target_wait_1 (inferior *inf, ptid_t ptid,
 			   ptid.to_string ().c_str ());
 
       /* We have a specific thread to check.  */
-      tp = find_thread_ptid (inf, ptid);
+      tp = inf->find_thread (ptid);
       gdb_assert (tp != nullptr);
       if (!tp->has_pending_waitstatus ())
 	tp = nullptr;
diff --git a/gdb/linux-thread-db.c b/gdb/linux-thread-db.c
index 5f2f167dbce7..ef1c2819229d 100644
--- a/gdb/linux-thread-db.c
+++ b/gdb/linux-thread-db.c
@@ -1655,7 +1655,7 @@ thread_db_target::update_thread_list ()
 std::string
 thread_db_target::pid_to_str (ptid_t ptid)
 {
-  thread_info *thread_info = find_thread_ptid (current_inferior (), ptid);
+  thread_info *thread_info = current_inferior ()->find_thread (ptid);
 
   if (thread_info != NULL && thread_info->priv != NULL)
     {
diff --git a/gdb/python/py-threadevent.c b/gdb/python/py-threadevent.c
index b29f69a3855f..05a833def259 100644
--- a/gdb/python/py-threadevent.c
+++ b/gdb/python/py-threadevent.c
@@ -28,8 +28,7 @@ py_get_event_thread (ptid_t ptid)
   if (non_stop)
     {
       thread_info *thread
-	= find_thread_ptid (current_inferior ()->process_target (),
-			    ptid);
+	= current_inferior ()->find_thread (ptid);
       if (thread != nullptr)
 	return thread_to_thread_object (thread);
       PyErr_SetString (PyExc_RuntimeError, "Could not find event thread");
diff --git a/gdb/ravenscar-thread.c b/gdb/ravenscar-thread.c
index 22fbdbe9662e..ad357352eca8 100644
--- a/gdb/ravenscar-thread.c
+++ b/gdb/ravenscar-thread.c
@@ -452,7 +452,7 @@ ravenscar_thread_target::wait (ptid_t ptid,
 void
 ravenscar_thread_target::add_thread (struct ada_task_info *task)
 {
-  if (find_thread_ptid (current_inferior (), task->ptid) == NULL)
+  if (current_inferior ()->find_thread (task->ptid) == NULL)
     {
       ::add_thread (current_inferior ()->process_target (), task->ptid);
       m_cpu_map[task->ptid.tid ()] = task->base_cpu;
diff --git a/gdb/sol-thread.c b/gdb/sol-thread.c
index 8945c2041db8..ed1a803fbdb0 100644
--- a/gdb/sol-thread.c
+++ b/gdb/sol-thread.c
@@ -451,7 +451,7 @@ sol_thread_target::wait (ptid_t ptid, struct target_waitstatus *ourstatus,
       /* See if we have a new thread.  */
       if (rtnval.tid_p ())
 	{
-	  thread_info *thr = find_thread_ptid (current_inferior (), rtnval);
+	  thread_info *thr = current_inferior ()->find_thread (rtnval);
 	  if (thr == NULL || thr->state == THREAD_EXITED)
 	    {
 	      process_stratum_target *proc_target
@@ -1003,7 +1003,7 @@ sol_update_thread_list_callback (const td_thrhandle_t *th, void *ignored)
     return -1;
 
   ptid_t ptid = ptid_t (current_inferior ()->pid, 0, ti.ti_tid);
-  thread_info *thr = find_thread_ptid (current_inferior (), ptid);
+  thread_info *thr = current_inferior ()->find_thread (ptid);
   if (thr == NULL || thr->state == THREAD_EXITED)
     {
       process_stratum_target *proc_target
diff --git a/gdb/thread.c b/gdb/thread.c
index 3d4cba32303d..9bca4784f900 100644
--- a/gdb/thread.c
+++ b/gdb/thread.c
@@ -221,7 +221,7 @@ set_thread_exited (thread_info *tp, bool silent)
       clear_thread_inferior_resources (tp);
 
       /* Remove from the ptid_t map.  We don't want for
-	 find_thread_ptid to find exited threads.  Also, the target
+	 inferior::find_thread to find exited threads.  Also, the target
 	 may reuse the ptid for a new thread, and there can only be
 	 one value per key; adding a new thread with the same ptid_t
 	 would overwrite the exited thread's ptid entry.  */
@@ -275,7 +275,7 @@ add_thread_silent (process_stratum_target *targ, ptid_t ptid)
      If we do, it must be dead, otherwise we wouldn't be adding a new
      thread with the same id.  The OS is reusing this id --- delete
      the old thread, and create a new one.  */
-  thread_info *tp = find_thread_ptid (inf, ptid);
+  thread_info *tp = inf->find_thread (ptid);
   if (tp != nullptr)
     delete_thread (tp);
 
@@ -520,21 +520,7 @@ find_thread_ptid (process_stratum_target *targ, ptid_t ptid)
   inferior *inf = find_inferior_ptid (targ, ptid);
   if (inf == NULL)
     return NULL;
-  return find_thread_ptid (inf, ptid);
-}
-
-/* See gdbthread.h.  */
-
-struct thread_info *
-find_thread_ptid (inferior *inf, ptid_t ptid)
-{
-  gdb_assert (inf != nullptr);
-
-  auto it = inf->ptid_thread_map.find (ptid);
-  if (it != inf->ptid_thread_map.end ())
-    return it->second;
-  else
-    return nullptr;
+  return inf->find_thread (ptid);
 }
 
 /* See gdbthread.h.  */
@@ -802,7 +788,7 @@ thread_change_ptid (process_stratum_target *targ,
   inf = find_inferior_ptid (targ, old_ptid);
   inf->pid = new_ptid.pid ();
 
-  tp = find_thread_ptid (inf, old_ptid);
+  tp = inf->find_thread (old_ptid);
   gdb_assert (tp != nullptr);
 
   int num_erased = inf->ptid_thread_map.erase (old_ptid);
-- 
2.40.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 2/2] gdb: make find_thread_ptid a process_stratum_target method
  2023-03-27 16:53 [PATCH 0/2] Change find_thread_ptid functions to be methods Simon Marchi
  2023-03-27 16:53 ` [PATCH 1/2] gdb: make find_thread_ptid an inferior method Simon Marchi
@ 2023-03-27 16:53 ` Simon Marchi
  2023-04-04 18:44 ` [PATCH 0/2] Change find_thread_ptid functions to be methods Tom Tromey
  2 siblings, 0 replies; 5+ messages in thread
From: Simon Marchi @ 2023-03-27 16:53 UTC (permalink / raw)
  To: gdb-patches; +Cc: Simon Marchi

From: Simon Marchi <simon.marchi@polymtl.ca>

Make find_thread_ptid (the overload that takes a process_stratum_target)
a method of process_stratum_target.

Change-Id: Ib190a925a83c6b93e9c585dc7c6ab65efbdd8629
---
 gdb/aarch64-tdep.c           |  4 +---
 gdb/aix-thread.c             |  2 +-
 gdb/amd-dbgapi-target.c      |  4 ++--
 gdb/bsd-uthread.c            |  4 ++--
 gdb/darwin-nat.c             |  2 +-
 gdb/fbsd-nat.c               |  2 +-
 gdb/gdbthread.h              |  4 ----
 gdb/gnu-nat.c                |  3 +--
 gdb/infcmd.c                 |  2 +-
 gdb/infrun.c                 | 12 ++++++------
 gdb/linux-fork.c             |  2 +-
 gdb/linux-nat.c              | 14 +++++++-------
 gdb/linux-thread-db.c        | 12 ++++++------
 gdb/mi/mi-interp.c           |  2 +-
 gdb/netbsd-nat.c             |  2 +-
 gdb/nto-procfs.c             |  6 +++---
 gdb/process-stratum-target.c | 11 +++++++++++
 gdb/process-stratum-target.h |  3 +++
 gdb/procfs.c                 |  6 +++---
 gdb/ravenscar-thread.c       |  6 +++---
 gdb/record-btrace.c          |  4 ++--
 gdb/remote.c                 | 18 +++++++++---------
 gdb/thread-iter.c            |  2 +-
 gdb/thread.c                 | 15 ++-------------
 gdb/windows-nat.c            |  4 ++--
 25 files changed, 71 insertions(+), 75 deletions(-)

diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c
index d11d8320799c..a1daa9a17884 100644
--- a/gdb/aarch64-tdep.c
+++ b/gdb/aarch64-tdep.c
@@ -3576,9 +3576,7 @@ aarch64_remove_non_address_bits (struct gdbarch *gdbarch, CORE_ADDR pointer)
     {
       /* If we do have an inferior, attempt to fetch its thread's thread_info
 	 struct.  */
-      thread_info *thread
-	= find_thread_ptid (current_inferior ()->process_target (),
-			    inferior_ptid);
+      thread_info *thread = current_inferior ()->find_thread (inferior_ptid);
 
       /* If the thread is running, we will not be able to fetch the mask
 	 registers.  */
diff --git a/gdb/aix-thread.c b/gdb/aix-thread.c
index f4ccfb2b364d..c587027fb6dc 100644
--- a/gdb/aix-thread.c
+++ b/gdb/aix-thread.c
@@ -941,7 +941,7 @@ sync_threadlists (pid_t pid)
 
 	      if (gptid.is_pid ())
 		{
-		  tp = find_thread_ptid (proc_target, gptid);
+		  tp = proc_target->find_thread (gptid);
 		  thread_change_ptid (proc_target, gptid, pptid);
 		  aix_thread_info *priv = new aix_thread_info;
 		  priv->pdtid = pbuf[pi].pdtid;
diff --git a/gdb/amd-dbgapi-target.c b/gdb/amd-dbgapi-target.c
index f5161038c51d..f1ef37d17967 100644
--- a/gdb/amd-dbgapi-target.c
+++ b/gdb/amd-dbgapi-target.c
@@ -718,7 +718,7 @@ amd_dbgapi_target::stop (ptid_t ptid)
     {
       /* No need to iterate all non-exited threads if the request is to stop a
 	 specific thread.  */
-      stop_one_thread (find_thread_ptid (proc_target, ptid));
+      stop_one_thread (proc_target->find_thread (ptid));
       return;
     }
 
@@ -998,7 +998,7 @@ process_one_event (amd_dbgapi_event_id_t event_id,
 	    else
 	      ws.set_stopped (GDB_SIGNAL_0);
 
-	    thread_info *thread = find_thread_ptid (proc_target, event_ptid);
+	    thread_info *thread = proc_target->find_thread (event_ptid);
 	    if (thread == nullptr)
 	      {
 		/* Silently create new GPU threads to avoid spamming the
diff --git a/gdb/bsd-uthread.c b/gdb/bsd-uthread.c
index 8b08de8075f4..d0094bdc2ca1 100644
--- a/gdb/bsd-uthread.c
+++ b/gdb/bsd-uthread.c
@@ -415,7 +415,7 @@ bsd_uthread_target::wait (ptid_t ptid, struct target_waitstatus *status,
     thread_change_ptid (beneath, inferior_ptid, ptid);
 
   /* Don't let the core see a ptid without a corresponding thread.  */
-  thread_info *thread = find_thread_ptid (beneath, ptid);
+  thread_info *thread = beneath->find_thread (ptid);
   if (thread == NULL || thread->state == THREAD_EXITED)
     add_thread (beneath, ptid);
 
@@ -466,7 +466,7 @@ bsd_uthread_target::update_thread_list ()
 
       process_stratum_target *proc_target
 	= as_process_stratum_target (this->beneath ());
-      thread_info *thread = find_thread_ptid (proc_target, ptid);
+      thread_info *thread = proc_target->find_thread (ptid);
       if (thread == nullptr || thread->state == THREAD_EXITED)
 	{
 	  /* If INFERIOR_PTID doesn't have a tid member yet, then ptid
diff --git a/gdb/darwin-nat.c b/gdb/darwin-nat.c
index e864c35620ea..4cf2d9f387a1 100644
--- a/gdb/darwin-nat.c
+++ b/gdb/darwin-nat.c
@@ -360,7 +360,7 @@ darwin_nat_target::check_new_threads (inferior *inf)
 	{
 	  /* A thread was removed.  */
 	  struct thread_info *thr
-	    = find_thread_ptid (this, ptid_t (inf->pid, 0, old_id));
+	    = this->find_thread (ptid_t (inf->pid, 0, old_id));
 	  delete_thread (thr);
 	  kret = mach_port_deallocate (gdb_task, old_id);
 	  MACH_CHECK_ERROR (kret);
diff --git a/gdb/fbsd-nat.c b/gdb/fbsd-nat.c
index 27d2fe450929..b2e8043e4b4d 100644
--- a/gdb/fbsd-nat.c
+++ b/gdb/fbsd-nat.c
@@ -1295,7 +1295,7 @@ fbsd_nat_target::wait_1 (ptid_t ptid, struct target_waitstatus *ourstatus,
 		 threads might be skipped during post_attach that
 		 have not yet reported their PL_FLAG_EXITED event.
 		 Ignore EXITED events for an unknown LWP.  */
-	      thread_info *thr = find_thread_ptid (this, wptid);
+	      thread_info *thr = this->find_thread (wptid);
 	      if (thr != nullptr)
 		{
 		  fbsd_lwp_debug_printf ("deleting thread for LWP %u",
diff --git a/gdb/gdbthread.h b/gdb/gdbthread.h
index 81e4afd24c25..65aab9d12c32 100644
--- a/gdb/gdbthread.h
+++ b/gdb/gdbthread.h
@@ -672,10 +672,6 @@ extern bool in_thread_list (process_stratum_target *targ, ptid_t ptid);
    global id, not the system's).  */
 extern int valid_global_thread_id (int global_id);
 
-/* Search function to lookup a (non-exited) thread by 'ptid'.  */
-extern struct thread_info *find_thread_ptid (process_stratum_target *targ,
-					     ptid_t ptid);
-
 /* Find thread by GDB global thread ID.  */
 struct thread_info *find_thread_global_id (int global_id);
 
diff --git a/gdb/gnu-nat.c b/gdb/gnu-nat.c
index afaec46e3c15..138905395813 100644
--- a/gdb/gnu-nat.c
+++ b/gdb/gnu-nat.c
@@ -2186,8 +2186,7 @@ gnu_nat_target::attach (const char *args, int from_tty)
 
   inf_update_procs (inf);
 
-  thread_info *thr
-    = find_thread_ptid (this, ptid_t (pid, inf_pick_first_thread ()));
+  thread_info *thr = this->find_thread (ptid_t (pid, inf_pick_first_thread ()));
   switch_to_thread (thr);
 
   /* We have to initialize the terminal settings now, since the code
diff --git a/gdb/infcmd.c b/gdb/infcmd.c
index e2032d185646..4ed7d9d2c8ff 100644
--- a/gdb/infcmd.c
+++ b/gdb/infcmd.c
@@ -710,7 +710,7 @@ continue_command (const char *args, int from_tty)
 	  ptid_t last_ptid;
 
 	  get_last_target_status (&last_target, &last_ptid, nullptr);
-	  tp = find_thread_ptid (last_target, last_ptid);
+	  tp = last_target->find_thread (last_ptid);
 	}
       if (tp != nullptr)
 	bs = tp->control.stop_bpstat;
diff --git a/gdb/infrun.c b/gdb/infrun.c
index 334080142f15..a03576e5f2d3 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -875,7 +875,7 @@ follow_fork ()
 	    /* If we followed the child, switch to it...  */
 	    if (follow_child)
 	      {
-		tp = find_thread_ptid (parent_targ, child);
+		tp = parent_targ->find_thread (child);
 		switch_to_thread (tp);
 
 		/* ... and preserve the stepping state, in case the
@@ -5085,7 +5085,7 @@ handle_one (const wait_one_event &event)
 	}
       else
 	{
-	  t = find_thread_ptid (event.target, event.ptid);
+	  t = event.target->find_thread (event.ptid);
 	  /* Check if this is the first time we see this thread.
 	     Don't bother adding if it individually exited.  */
 	  if (t == nullptr
@@ -5106,7 +5106,7 @@ handle_one (const wait_one_event &event)
     }
   else
     {
-      thread_info *t = find_thread_ptid (event.target, event.ptid);
+      thread_info *t = event.target->find_thread (event.ptid);
       if (t == nullptr)
 	t = add_thread (event.target, event.ptid);
 
@@ -5507,7 +5507,7 @@ handle_inferior_event (struct execution_control_state *ecs)
   if (ecs->ws.kind () != TARGET_WAITKIND_EXITED
       && ecs->ws.kind () != TARGET_WAITKIND_SIGNALLED)
     {
-      ecs->event_thread = find_thread_ptid (ecs->target, ecs->ptid);
+      ecs->event_thread = ecs->target->find_thread (ecs->ptid);
       /* If it's a new thread, add it to the thread database.  */
       if (ecs->event_thread == nullptr)
 	ecs->event_thread = add_thread (ecs->target, ecs->ptid);
@@ -5656,7 +5656,7 @@ handle_inferior_event (struct execution_control_state *ecs)
 	   need to have access to the just-exited thread.  That is the
 	   case of GNU/Linux's "checkpoint" support, for example.
 	   Call the switch_to_xxx routine as appropriate.  */
-	thread_info *thr = find_thread_ptid (ecs->target, ecs->ptid);
+	thread_info *thr = ecs->target->find_thread (ecs->ptid);
 	if (thr != nullptr)
 	  switch_to_thread (thr);
 	else
@@ -5843,7 +5843,7 @@ handle_inferior_event (struct execution_control_state *ecs)
 	  /* Note that one of these may be an invalid pointer,
 	     depending on detach_fork.  */
 	  thread_info *parent = ecs->event_thread;
-	  thread_info *child = find_thread_ptid (targ, ecs->ws.child_ptid ());
+	  thread_info *child = targ->find_thread (ecs->ws.child_ptid ());
 
 	  /* At this point, the parent is marked running, and the
 	     child is marked stopped.  */
diff --git a/gdb/linux-fork.c b/gdb/linux-fork.c
index a6e74c0cb529..52e385411c7e 100644
--- a/gdb/linux-fork.c
+++ b/gdb/linux-fork.c
@@ -529,7 +529,7 @@ Please switch to another checkpoint before deleting the current one"));
      list, waitpid the ptid.
      If fi->parent_ptid is a part of lwp and it is stopped, waitpid the
      ptid.  */
-  thread_info *parent = find_thread_ptid (linux_target, pptid);
+  thread_info *parent = linux_target->find_thread (pptid);
   if ((parent == NULL && find_fork_ptid (pptid))
       || (parent != NULL && parent->state == THREAD_STOPPED))
     {
diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
index fd537d7a1d36..029dbef37238 100644
--- a/gdb/linux-nat.c
+++ b/gdb/linux-nat.c
@@ -890,7 +890,7 @@ linux_nat_switch_fork (ptid_t new_ptid)
 static void
 exit_lwp (struct lwp_info *lp)
 {
-  struct thread_info *th = find_thread_ptid (linux_target, lp->ptid);
+  struct thread_info *th = linux_target->find_thread (lp->ptid);
 
   if (th)
     {
@@ -1219,7 +1219,7 @@ get_detach_signal (struct lwp_info *lp)
     signo = gdb_signal_from_host (WSTOPSIG (lp->status));
   else
     {
-      struct thread_info *tp = find_thread_ptid (linux_target, lp->ptid);
+      thread_info *tp = linux_target->find_thread (lp->ptid);
 
       if (target_is_non_stop_p () && !tp->executing ())
 	{
@@ -1312,7 +1312,7 @@ detach_one_lwp (struct lwp_info *lp, int *signo_p)
 
 
   /* Check in thread_info::pending_waitstatus.  */
-  thread_info *tp = find_thread_ptid (linux_target, lp->ptid);
+  thread_info *tp = linux_target->find_thread (lp->ptid);
   if (tp->has_pending_waitstatus ())
     {
       const target_waitstatus &ws = tp->pending_waitstatus ();
@@ -1566,7 +1566,7 @@ linux_nat_resume_callback (struct lwp_info *lp, struct lwp_info *except)
     {
       struct thread_info *thread;
 
-      thread = find_thread_ptid (linux_target, lp->ptid);
+      thread = linux_target->find_thread (lp->ptid);
       if (thread != NULL)
 	{
 	  signo = thread->stop_signal ();
@@ -1704,7 +1704,7 @@ linux_handle_syscall_trap (struct lwp_info *lp, int stopping)
 {
   struct target_waitstatus *ourstatus = &lp->waitstatus;
   struct gdbarch *gdbarch = target_thread_architecture (lp->ptid);
-  thread_info *thread = find_thread_ptid (linux_target, lp->ptid);
+  thread_info *thread = linux_target->find_thread (lp->ptid);
   int syscall_number = (int) gdbarch_get_syscall_number (gdbarch, thread);
 
   if (stopping)
@@ -2983,7 +2983,7 @@ linux_nat_filter_event (int lwpid, int status)
       if (!lp->step
 	  && WSTOPSIG (status) && sigismember (&pass_mask, WSTOPSIG (status))
 	  && (WSTOPSIG (status) != SIGSTOP
-	      || !find_thread_ptid (linux_target, lp->ptid)->stop_requested)
+	      || !linux_target->find_thread (lp->ptid)->stop_requested)
 	  && !linux_wstatus_maybe_breakpoint (status))
 	{
 	  linux_resume_one_lwp (lp, lp->step, signo);
@@ -4265,7 +4265,7 @@ linux_nat_stop_lwp (struct lwp_info *lwp)
 
       if (debug_linux_nat)
 	{
-	  if (find_thread_ptid (linux_target, lwp->ptid)->stop_requested)
+	  if (linux_target->find_thread (lwp->ptid)->stop_requested)
 	    linux_nat_debug_printf ("already stopped/stop_requested %s",
 				    lwp->ptid.to_string ().c_str ());
 	  else
diff --git a/gdb/linux-thread-db.c b/gdb/linux-thread-db.c
index ef1c2819229d..0e190f942668 100644
--- a/gdb/linux-thread-db.c
+++ b/gdb/linux-thread-db.c
@@ -422,7 +422,7 @@ thread_from_lwp (thread_info *stopped, ptid_t ptid)
 	   thread_db_err_str (err));
 
   /* Fill the cache.  */
-  tp = find_thread_ptid (stopped->inf->process_target (), ptid);
+  tp = stopped->inf->process_target ()->find_thread (ptid);
   return record_thread (info, tp, ptid, &th, &ti);
 }
 \f
@@ -439,7 +439,7 @@ thread_db_notice_clone (ptid_t parent, ptid_t child)
   if (info == NULL)
     return 0;
 
-  thread_info *stopped = find_thread_ptid (linux_target, parent);
+  thread_info *stopped = linux_target->find_thread (parent);
 
   thread_from_lwp (stopped, child);
 
@@ -685,7 +685,7 @@ check_thread_db_callback (const td_thrhandle_t *th, void *arg)
      to how GDB accesses TLS could result in this passing
      without exercising the calls it's supposed to.  */
   ptid_t ptid = ptid_t (tdb_testinfo->info->pid, ti.ti_lid);
-  thread_info *thread_info = find_thread_ptid (linux_target, ptid);
+  thread_info *thread_info = linux_target->find_thread (ptid);
   if (thread_info != NULL && thread_info->priv != NULL)
     {
       LOG ("; errno");
@@ -1417,7 +1417,7 @@ thread_db_target::wait (ptid_t ptid, struct target_waitstatus *ourstatus,
     return ptid;
 
   /* Fill in the thread's user-level thread id and status.  */
-  thread_from_lwp (find_thread_ptid (beneath, ptid), ptid);
+  thread_from_lwp (beneath->find_thread (ptid), ptid);
 
   return ptid;
 }
@@ -1511,7 +1511,7 @@ find_new_threads_callback (const td_thrhandle_t *th_p, void *data)
     }
 
   ptid_t ptid (info->pid, ti.ti_lid);
-  tp = find_thread_ptid (info->process_target, ptid);
+  tp = info->process_target->find_thread (ptid);
   if (tp == NULL || tp->priv == NULL)
     record_thread (info, tp, ptid, th_p, &ti);
 
@@ -1751,7 +1751,7 @@ thread_db_target::get_thread_local_address (ptid_t ptid,
   process_stratum_target *beneath
     = as_process_stratum_target (this->beneath ());
   /* Find the matching thread.  */
-  thread_info = find_thread_ptid (beneath, ptid);
+  thread_info = beneath->find_thread (ptid);
 
   /* We may not have discovered the thread yet.  */
   if (thread_info != NULL && thread_info->priv == NULL)
diff --git a/gdb/mi/mi-interp.c b/gdb/mi/mi-interp.c
index e1244f3df438..4f0bbd40f9d7 100644
--- a/gdb/mi/mi-interp.c
+++ b/gdb/mi/mi-interp.c
@@ -1015,7 +1015,7 @@ mi_on_resume (ptid_t ptid)
   if (ptid == minus_one_ptid || ptid.is_pid ())
     tp = inferior_thread ();
   else
-    tp = find_thread_ptid (target, ptid);
+    tp = target->find_thread (ptid);
 
   /* Suppress output while calling an inferior function.  */
   if (tp->control.in_infcall)
diff --git a/gdb/netbsd-nat.c b/gdb/netbsd-nat.c
index 64f74c9405c9..86df0c8fe6a0 100644
--- a/gdb/netbsd-nat.c
+++ b/gdb/netbsd-nat.c
@@ -618,7 +618,7 @@ nbsd_nat_target::wait (ptid_t ptid, struct target_waitstatus *ourstatus,
 	 threads might be skipped during post_attach that
 	 have not yet reported their PTRACE_LWP_EXIT event.
 	 Ignore exited events for an unknown LWP.  */
-      thread_info *thr = find_thread_ptid (this, wptid);
+      thread_info *thr = this->find_thread (wptid);
       if (thr == nullptr)
 	  ourstatus->set_spurious ();
       else
diff --git a/gdb/nto-procfs.c b/gdb/nto-procfs.c
index 8e40efa31fcf..61c18fdc8254 100644
--- a/gdb/nto-procfs.c
+++ b/gdb/nto-procfs.c
@@ -409,7 +409,7 @@ nto_procfs_target::update_thread_list ()
 	   (e.g. thread exited).  */
 	continue;
       ptid = ptid_t (pid, 0, tid);
-      new_thread = find_thread_ptid (this, ptid);
+      new_thread = this->find_thread (ptid);
       if (!new_thread)
 	new_thread = add_thread (ptid);
       update_thread_private_data (new_thread, tid, status.state, 0);
@@ -713,7 +713,7 @@ nto_procfs_target::attach (const char *args, int from_tty)
 
   update_thread_list ();
 
-  switch_to_thread (find_thread_ptid (this, ptid));
+  switch_to_thread (this->find_thread (ptid));
 }
 
 void
@@ -1282,7 +1282,7 @@ nto_procfs_target::create_inferior (const char *exec_file,
 
   ptid_t ptid = do_attach (ptid_t (pid));
   update_thread_list ();
-  switch_to_thread (find_thread_ptid (this, ptid));
+  switch_to_thread (this->find_thread (ptid));
 
   inf = current_inferior ();
   inferior_appeared (inf, pid);
diff --git a/gdb/process-stratum-target.c b/gdb/process-stratum-target.c
index e1d41c86b9c3..5c031203e89e 100644
--- a/gdb/process-stratum-target.c
+++ b/gdb/process-stratum-target.c
@@ -199,6 +199,17 @@ process_stratum_target::random_resumed_with_pending_wait_status
 
 /* See process-stratum-target.h.  */
 
+thread_info *
+process_stratum_target::find_thread (ptid_t ptid)
+{
+  inferior *inf = find_inferior_ptid (this, ptid);
+  if (inf == NULL)
+    return NULL;
+  return inf->find_thread (ptid);
+}
+
+/* See process-stratum-target.h.  */
+
 std::set<process_stratum_target *>
 all_non_exited_process_targets ()
 {
diff --git a/gdb/process-stratum-target.h b/gdb/process-stratum-target.h
index dcbca5a9c6ad..35cfd9c1cca6 100644
--- a/gdb/process-stratum-target.h
+++ b/gdb/process-stratum-target.h
@@ -108,6 +108,9 @@ class process_stratum_target : public target_ops
   thread_info *random_resumed_with_pending_wait_status
     (inferior *inf, ptid_t filter_ptid);
 
+  /* Search function to lookup a (non-exited) thread by 'ptid'.  */
+  thread_info *find_thread (ptid_t ptid);
+
   /* The connection number.  Visible in "info connections".  */
   int connection_number = 0;
 
diff --git a/gdb/procfs.c b/gdb/procfs.c
index 741e62a24026..7990640963b7 100644
--- a/gdb/procfs.c
+++ b/gdb/procfs.c
@@ -2118,7 +2118,7 @@ procfs_target::wait (ptid_t ptid, struct target_waitstatus *status,
 		    if (print_thread_events)
 		      gdb_printf (_("[%s exited]\n"),
 				  target_pid_to_str (retval).c_str ());
-		    delete_thread (find_thread_ptid (this, retval));
+		    delete_thread (this->find_thread (retval));
 		    target_continue_no_signal (ptid);
 		    goto wait_again;
 		  }
@@ -2225,7 +2225,7 @@ procfs_target::wait (ptid_t ptid, struct target_waitstatus *status,
 		    if (print_thread_events)
 		      gdb_printf (_("[%s exited]\n"),
 				  target_pid_to_str (retval).c_str ());
-		    delete_thread (find_thread_ptid (this, retval));
+		    delete_thread (this->find_thread (retval));
 		    status->set_spurious ();
 		    return retval;
 		  }
@@ -2854,7 +2854,7 @@ procfs_notice_thread (procinfo *pi, procinfo *thread, void *ptr)
 {
   ptid_t gdb_threadid = ptid_t (pi->pid, thread->tid, 0);
 
-  thread_info *thr = find_thread_ptid (&the_procfs_target, gdb_threadid);
+  thread_info *thr = the_procfs_target.find_thread (gdb_threadid);
   if (thr == NULL || thr->state == THREAD_EXITED)
     add_thread (&the_procfs_target, gdb_threadid);
 
diff --git a/gdb/ravenscar-thread.c b/gdb/ravenscar-thread.c
index ad357352eca8..520161338895 100644
--- a/gdb/ravenscar-thread.c
+++ b/gdb/ravenscar-thread.c
@@ -127,7 +127,7 @@ struct ravenscar_thread_target final : public target_ops
     process_stratum_target *proc_target
       = as_process_stratum_target (this->beneath ());
     ptid_t underlying = get_base_thread_from_ravenscar_task (tp->ptid);
-    tp = find_thread_ptid (proc_target, underlying);
+    tp = proc_target->find_thread (underlying);
 
     return beneath ()->enable_btrace (tp, conf);
   }
@@ -161,7 +161,7 @@ struct ravenscar_thread_target final : public target_ops
     process_stratum_target *proc_target
       = as_process_stratum_target (this->beneath ());
     ptid_t underlying = get_base_thread_from_ravenscar_task (ptid);
-    switch_to_thread (find_thread_ptid (proc_target, underlying));
+    switch_to_thread (proc_target->find_thread (underlying));
   }
 
   /* Some targets use lazy FPU initialization.  On these, the FP
@@ -312,7 +312,7 @@ ravenscar_thread_target::add_active_thread ()
   /* The running thread may not have been added to
      system.tasking.debug's list yet; so ravenscar_update_thread_list
      may not always add it to the thread list.  Add it here.  */
-  thread_info *active_thr = find_thread_ptid (proc_target, active_ptid);
+  thread_info *active_thr = proc_target->find_thread (active_ptid);
   if (active_thr == nullptr)
     {
       active_thr = ::add_thread (proc_target, active_ptid);
diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c
index 2d88e4d20bf6..25ae66311520 100644
--- a/gdb/record-btrace.c
+++ b/gdb/record-btrace.c
@@ -1396,7 +1396,7 @@ enum record_method
 record_btrace_target::record_method (ptid_t ptid)
 {
   process_stratum_target *proc_target = current_inferior ()->process_target ();
-  thread_info *const tp = find_thread_ptid (proc_target, ptid);
+  thread_info *const tp = proc_target->find_thread (ptid);
 
   if (tp == NULL)
     error (_("No thread."));
@@ -1548,7 +1548,7 @@ record_btrace_target::fetch_registers (struct regcache *regcache, int regno)
   /* Thread-db may ask for a thread's registers before GDB knows about the
      thread.  We forward the request to the target beneath in this
      case.  */
-  thread_info *tp = find_thread_ptid (regcache->target (), regcache->ptid ());
+  thread_info *tp = regcache->target ()->find_thread (regcache->ptid ());
   if (tp != nullptr)
     replay =  tp->btrace.replay;
 
diff --git a/gdb/remote.c b/gdb/remote.c
index 526df313ea73..73deea3690b3 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -2783,7 +2783,7 @@ remote_target::remote_notice_new_inferior (ptid_t currthread, bool executing)
   /* If this is a new thread, add it to GDB's thread list.
      If we leave it up to WFI to do this, bad things will happen.  */
 
-  thread_info *tp = find_thread_ptid (this, currthread);
+  thread_info *tp = this->find_thread (currthread);
   if (tp != NULL && tp->state == THREAD_EXITED)
     {
       /* We're seeing an event on a thread id we knew had exited.
@@ -2875,7 +2875,7 @@ get_remote_thread_info (thread_info *thread)
 static remote_thread_info *
 get_remote_thread_info (remote_target *target, ptid_t ptid)
 {
-  thread_info *thr = find_thread_ptid (target, ptid);
+  thread_info *thr = target->find_thread (ptid);
   return get_remote_thread_info (thr);
 }
 
@@ -4175,7 +4175,7 @@ remote_target::update_thread_list ()
 
 	      remote_notice_new_inferior (item.ptid, executing);
 
-	      thread_info *tp = find_thread_ptid (this, item.ptid);
+	      thread_info *tp = this->find_thread (item.ptid);
 	      remote_thread_info *info = get_remote_thread_info (tp);
 	      info->core = item.core;
 	      info->extra = std::move (item.extra);
@@ -4771,7 +4771,7 @@ remote_target::process_initial_stop_replies (int from_tty)
       if (ignore_event)
 	continue;
 
-      thread_info *evthread = find_thread_ptid (this, event_ptid);
+      thread_info *evthread = this->find_thread (event_ptid);
 
       if (ws.kind () == TARGET_WAITKIND_STOPPED)
 	{
@@ -5123,7 +5123,7 @@ remote_target::start_remote_1 (int from_tty, int extended_p)
 		}
 	    }
 	  else
-	    switch_to_thread (find_thread_ptid (this, curr_thread));
+	    switch_to_thread (this->find_thread (curr_thread));
 	}
 
       /* init_wait_for_inferior should be called before get_offsets in order
@@ -6192,7 +6192,7 @@ remote_target::remote_detach_1 (inferior *inf, int from_tty)
       remote_detach_pid (reply->ws.child_ptid ().pid ());
     }
 
-  thread_info *tp = find_thread_ptid (this, inferior_ptid);
+  thread_info *tp = this->find_thread (inferior_ptid);
 
   /* Check to see if we are detaching a fork parent.  Note that if we
      are detaching a fork child, tp == NULL.  */
@@ -6502,10 +6502,10 @@ remote_target::append_resumption (char *p, char *endp,
 	{
 	  /* If we don't know about the target thread's tid, then
 	     we're resuming magic_null_ptid (see caller).  */
-	  tp = find_thread_ptid (this, magic_null_ptid);
+	  tp = this->find_thread (magic_null_ptid);
 	}
       else
-	tp = find_thread_ptid (this, ptid);
+	tp = this->find_thread (ptid);
       gdb_assert (tp != NULL);
 
       if (tp->control.may_range_step)
@@ -13964,7 +13964,7 @@ remote_target::set_disconnected_tracing (int val)
 int
 remote_target::core_of_thread (ptid_t ptid)
 {
-  thread_info *info = find_thread_ptid (this, ptid);
+  thread_info *info = this->find_thread (ptid);
 
   if (info != NULL && info->priv != NULL)
     return get_remote_thread_info (info)->core;
diff --git a/gdb/thread-iter.c b/gdb/thread-iter.c
index 9fc8c8a1b136..f61ce7fb33ce 100644
--- a/gdb/thread-iter.c
+++ b/gdb/thread-iter.c
@@ -122,7 +122,7 @@ all_matching_threads_iterator::all_matching_threads_iterator
 	  /* Iterate on a single thread.  */
 	  m_mode = mode::SINGLE_THREAD;
 
-	  m_thr = find_thread_ptid (filter_target, filter_ptid);
+	  m_thr = filter_target->find_thread (filter_ptid);
 	}
     }
 }
diff --git a/gdb/thread.c b/gdb/thread.c
index 9bca4784f900..3425dbcac135 100644
--- a/gdb/thread.c
+++ b/gdb/thread.c
@@ -514,17 +514,6 @@ find_thread_id (struct inferior *inf, int thr_num)
 
 /* See gdbthread.h.  */
 
-struct thread_info *
-find_thread_ptid (process_stratum_target *targ, ptid_t ptid)
-{
-  inferior *inf = find_inferior_ptid (targ, ptid);
-  if (inf == NULL)
-    return NULL;
-  return inf->find_thread (ptid);
-}
-
-/* See gdbthread.h.  */
-
 struct thread_info *
 find_thread_by_handle (gdb::array_view<const gdb_byte> handle,
 		       struct inferior *inf)
@@ -598,7 +587,7 @@ valid_global_thread_id (int global_id)
 bool
 in_thread_list (process_stratum_target *targ, ptid_t ptid)
 {
-  return find_thread_ptid (targ, ptid) != nullptr;
+  return targ->find_thread (ptid) != nullptr;
 }
 
 /* Finds the first thread of the inferior.  */
@@ -1336,7 +1325,7 @@ switch_to_thread (thread_info *thr)
 void
 switch_to_thread (process_stratum_target *proc_target, ptid_t ptid)
 {
-  thread_info *thr = find_thread_ptid (proc_target, ptid);
+  thread_info *thr = proc_target->find_thread (ptid);
   switch_to_thread (thr);
 }
 
diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c
index 26ad04b27be3..c09e459a8019 100644
--- a/gdb/windows-nat.c
+++ b/gdb/windows-nat.c
@@ -626,7 +626,7 @@ windows_nat_target::delete_thread (ptid_t ptid, DWORD exit_code,
 		target_pid_to_str (ptid).c_str (),
 		(unsigned) exit_code);
 
-  ::delete_thread (find_thread_ptid (this, ptid));
+  ::delete_thread (this->find_thread (ptid));
 
   auto iter = std::find_if (windows_process.thread_list.begin (),
 			    windows_process.thread_list.end (),
@@ -1944,7 +1944,7 @@ windows_nat_target::do_initial_windows_stuff (DWORD pid, bool attaching)
       this->resume (minus_one_ptid, 0, GDB_SIGNAL_0);
     }
 
-  switch_to_thread (find_thread_ptid (this, last_ptid));
+  switch_to_thread (this->find_thread (last_ptid));
 
   /* Now that the inferior has been started and all DLLs have been mapped,
      we can iterate over all DLLs and load them in.
-- 
2.40.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 0/2] Change find_thread_ptid functions to be methods
  2023-03-27 16:53 [PATCH 0/2] Change find_thread_ptid functions to be methods Simon Marchi
  2023-03-27 16:53 ` [PATCH 1/2] gdb: make find_thread_ptid an inferior method Simon Marchi
  2023-03-27 16:53 ` [PATCH 2/2] gdb: make find_thread_ptid a process_stratum_target method Simon Marchi
@ 2023-04-04 18:44 ` Tom Tromey
  2023-04-05  1:06   ` Simon Marchi
  2 siblings, 1 reply; 5+ messages in thread
From: Tom Tromey @ 2023-04-04 18:44 UTC (permalink / raw)
  To: Simon Marchi via Gdb-patches; +Cc: Simon Marchi

>>>>> "Simon" == Simon Marchi via Gdb-patches <gdb-patches@sourceware.org> writes:

Simon> I thought it would make sense for the that the find_thread_ptid
Simon> functions to be methods of inferior and process_stratum_target.
Simon> Especially the inferior one, as it searches in data that is private
Simon> (conceptually) to the inferior class.  I changed the
Simon> process_stratum_target one too, while at it.

These seem fine to me.  Thanks.

Reviewed-By: Tom Tromey <tom@tromey.com>

Tom

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 0/2] Change find_thread_ptid functions to be methods
  2023-04-04 18:44 ` [PATCH 0/2] Change find_thread_ptid functions to be methods Tom Tromey
@ 2023-04-05  1:06   ` Simon Marchi
  0 siblings, 0 replies; 5+ messages in thread
From: Simon Marchi @ 2023-04-05  1:06 UTC (permalink / raw)
  To: Tom Tromey, Simon Marchi via Gdb-patches; +Cc: Simon Marchi

On 4/4/23 14:44, Tom Tromey wrote:
>>>>>> "Simon" == Simon Marchi via Gdb-patches <gdb-patches@sourceware.org> writes:
> 
> Simon> I thought it would make sense for the that the find_thread_ptid
> Simon> functions to be methods of inferior and process_stratum_target.
> Simon> Especially the inferior one, as it searches in data that is private
> Simon> (conceptually) to the inferior class.  I changed the
> Simon> process_stratum_target one too, while at it.
> 
> These seem fine to me.  Thanks.
> 
> Reviewed-By: Tom Tromey <tom@tromey.com>

Thanks, pushed.

Simon

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-04-05  1:06 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-27 16:53 [PATCH 0/2] Change find_thread_ptid functions to be methods Simon Marchi
2023-03-27 16:53 ` [PATCH 1/2] gdb: make find_thread_ptid an inferior method Simon Marchi
2023-03-27 16:53 ` [PATCH 2/2] gdb: make find_thread_ptid a process_stratum_target method Simon Marchi
2023-04-04 18:44 ` [PATCH 0/2] Change find_thread_ptid functions to be methods Tom Tromey
2023-04-05  1:06   ` Simon Marchi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).