gdbserver: don't pick a random thread if the current thread dies
Commit Message
On 08/24/2015 04:30 PM, Pedro Alves wrote:
> I guess lwpid_of would be a little better even.
I went ahead a pushed this bit in, like below. Build-tested on
the gcc110 ppc64 machine on the GCC compile farm.
The fix for the crash will follow.
From a8c6d4fcd6b2a30c2b5b87d656ce035dcf8b0035 Mon Sep 17 00:00:00 2001
From: Pedro Alves <palves@redhat.com>
Date: Mon, 24 Aug 2015 17:58:22 +0100
Subject: [PATCH] Fix gdbserver SPU build
Ref: https://sourceware.org/ml/gdb-patches/2015-08/msg00675.html
gdbserver/spu-low.c: In function 'spu_request_interrupt':
gdbserver/spu-low.c:639: error: incompatible type for argument 1 of 'ptid_get_lwp'
gdb/gdbserver/ChangeLog:
2015-08-24 Pedro Alves <palves@redhat.com>
* spu-low.c (spu_request_interrupt): Use lwpid_of instead of
ptid_get_lwp.
---
gdb/gdbserver/ChangeLog | 5 +++++
gdb/gdbserver/spu-low.c | 2 +-
2 files changed, 6 insertions(+), 1 deletion(-)
@@ -1,3 +1,8 @@
+2015-08-24 Pedro Alves <palves@redhat.com>
+
+ * spu-low.c (spu_request_interrupt): Use lwpid_of instead of
+ ptid_get_lwp.
+
2015-08-21 Pedro Alves <palves@redhat.com>
* ax.c (gdb_eval_agent_expr): Return expr_eval_unhandled_opcode
@@ -636,7 +636,7 @@ spu_request_interrupt (void)
{
struct thread_info *thr = get_first_thread ();
- syscall (SYS_tkill, ptid_get_lwp (thr), SIGINT);
+ syscall (SYS_tkill, lwpid_of (thr), SIGINT);
}
static struct target_ops spu_target_ops = {