This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH 6/9] Use enqueue_pending_signal in linux_resume_one_thread
- From: Yao Qi <qiyaoltc at gmail dot com>
- To: gdb-patches at sourceware dot org
- Date: Thu, 30 Jun 2016 15:09:22 +0100
- Subject: [PATCH 6/9] Use enqueue_pending_signal in linux_resume_one_thread
- Authentication-results: sourceware.org; auth=none
- References: <1467295765-3457-1-git-send-email-yao dot qi at linaro dot org>
gdb/gdbserver:
2016-06-29 Yao Qi <yao.qi@linaro.org>
* linux-low.c (linux_resume_one_thread): Call
enqueue_pending_signal.
---
gdb/gdbserver/linux-low.c | 20 +++++++++-----------
1 file changed, 9 insertions(+), 11 deletions(-)
diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c
index 941b0e8..8061758 100644
--- a/gdb/gdbserver/linux-low.c
+++ b/gdb/gdbserver/linux-low.c
@@ -4917,21 +4917,19 @@ linux_resume_one_thread (struct inferior_list_entry *entry, void *arg)
/* If we have a new signal, enqueue the signal. */
if (lwp->resume->sig != 0)
{
- struct pending_signals *p_sig = XCNEW (struct pending_signals);
-
- p_sig->prev = lwp->pending_signals;
- p_sig->signal = lwp->resume->sig;
+ siginfo_t info, *info_p;
/* If this is the same signal we were previously stopped by,
- make sure to queue its siginfo. We can ignore the return
- value of ptrace; if it fails, we'll skip
- PTRACE_SETSIGINFO. */
+ make sure to queue its siginfo. */
if (WIFSTOPPED (lwp->last_status)
- && WSTOPSIG (lwp->last_status) == lwp->resume->sig)
- ptrace (PTRACE_GETSIGINFO, lwpid_of (thread), (PTRACE_TYPE_ARG3) 0,
- &p_sig->info);
+ && WSTOPSIG (lwp->last_status) == lwp->resume->sig
+ && ptrace (PTRACE_GETSIGINFO, lwpid_of (thread),
+ (PTRACE_TYPE_ARG3) 0, &info) == 0)
+ info_p = &info;
+ else
+ info_p = NULL;
- lwp->pending_signals = p_sig;
+ enqueue_pending_signal (lwp, lwp->resume->sig, info_p);
}
}
--
1.9.1