gdbserver: use current_process in ps_getpid
authorSimon Marchi <simon.marchi@efficios.com>
Thu, 17 Nov 2022 19:25:26 +0000 (14:25 -0500)
committerSimon Marchi <simon.marchi@polymtl.ca>
Fri, 18 Nov 2022 16:21:22 +0000 (11:21 -0500)
The following patch ("gdbserver: switch to right process in
find_one_thread") makes it so find_one_thread calls into libthread_db
with a current process but no current thread.  This tripped on ps_getpid
using current_thread in order to get the process' pid.  Get the pid from
`current_process ()` instead, which removes the need to have a current
thread.  Eventually, it would be good to get it from the
gdb_ps_prochandle_t structure, to avoid the need for a current process
as well.

Reviewed-By: Andrew Burgess <aburgess@redhat.com>
Change-Id: I9d2fae266419199a2fbc2fde0a5104c6e0dbd2d5

gdbserver/proc-service.cc

index a49e2b25a471fea1b3e2b085a679ab60f8366a99..f86c0e99923c43ab045ef13f1485530689b6b066 100644 (file)
@@ -158,5 +158,5 @@ ps_lsetfpregs (gdb_ps_prochandle_t ph, lwpid_t lwpid, const prfpregset_t *fpregs
 pid_t
 ps_getpid (gdb_ps_prochandle_t ph)
 {
-  return pid_of (current_thread);
+  return current_process ()->pid;
 }