This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Linux/ptrace: don't convert ptids when asking inf-ptrace layer to resume LWP


On 03/03/2015 03:34 PM, Pedro Alves wrote:
> On 03/03/2015 03:12 PM, Pedro Alves wrote:
>> On 03/03/2015 02:39 PM, Mark Kettenis wrote:
> 
>>>> -  if (pid == -1)
>>>> +  if (ptid_equal (minus_one_ptid, ptid))
>>>>      /* Resume all threads.  Traditionally ptrace() only supports
>>>>         single-threaded processes, so simply resume the inferior.  */
>>>> -    pid = ptid_get_pid (inferior_ptid);
>>>> +    pid = get_ptrace_pid (inferior_ptid);
>>>
>>> This defenitely should remain ptid_get_pid(); you want to resume the
>>> entire process and not an individual thread.


> In any case, I agree it's at least clearer.  I'm testing this.

Alright, pushed as below.  I dropped the "clearer" comment, as as
discussed, it's a correctness issue.

Thanks!

---
>From c1593e4fa9901c65a32e85c3c5d3ec41598be887 Mon Sep 17 00:00:00 2001
From: Pedro Alves <palves@redhat.com>
Date: Tue, 3 Mar 2015 16:28:15 +0000
Subject: [PATCH] inf-ptrace.c: use ptid_get_pid when resuming all threads

In this case, we want to resume the entire process and not an
individual thread.

gdb/
2015-03-03  Pedro Alves  <palves@redhat.com>

	* inf-ptrace.c (inf_ptrace_resume): Remove spurious whitespace.
	Use ptid_get_pid to get the overall process id when resuming all
	threads.
---
 gdb/ChangeLog    | 6 ++++++
 gdb/inf-ptrace.c | 3 +--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 31a672e..20250e4 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,11 @@
 2015-03-03  Pedro Alves  <palves@redhat.com>
 
+	* inf-ptrace.c (inf_ptrace_resume): Remove spurious whitespace.
+	Use ptid_get_pid to get the overall process id when resuming all
+	threads.
+
+2015-03-03  Pedro Alves  <palves@redhat.com>
+
 	* i386-linux-nat.c (i386_linux_resume): Get the ptrace PID out of
 	the lwp field of ptid.  Pass the full ptid to get_thread_regcache.
 	* inf-ptrace.c (get_ptrace_pid): New function.
diff --git a/gdb/inf-ptrace.c b/gdb/inf-ptrace.c
index 606bdb4..3502a12 100644
--- a/gdb/inf-ptrace.c
+++ b/gdb/inf-ptrace.c
@@ -314,13 +314,12 @@ inf_ptrace_resume (struct target_ops *ops,
 		   ptid_t ptid, int step, enum gdb_signal signal)
 {
   pid_t pid;
-
   int request;
 
   if (ptid_equal (minus_one_ptid, ptid))
     /* Resume all threads.  Traditionally ptrace() only supports
        single-threaded processes, so simply resume the inferior.  */
-    pid = get_ptrace_pid (inferior_ptid);
+    pid = ptid_get_pid (inferior_ptid);
   else
     pid = get_ptrace_pid (ptid);
 
-- 
1.9.3



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]