Linux/ptrace: don't convert ptids when asking inf-ptrace layer to resume LWP
Commit Message
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(-)
@@ -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.
@@ -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);