This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH] Use "switch_to_thread" more thoroughly on gdbserver
- From: Sergio Durigan Junior <sergiodj at redhat dot com>
- To: GDB Patches <gdb-patches at sourceware dot org>
- Cc: Sergio Durigan Junior <sergiodj at redhat dot com>
- Date: Fri, 15 Sep 2017 00:33:57 -0400
- Subject: [PATCH] Use "switch_to_thread" more thoroughly on gdbserver
- Authentication-results: sourceware.org; auth=none
- Authentication-results: ext-mx05.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com
- Authentication-results: ext-mx05.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=sergiodj at redhat dot com
- Dmarc-filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 4661BBDEA
This is a technical debt that I left when I ported "switch_to_thread"
to gdbserver. It's a simple patch that converts occurences of:
current_thread = find_thread_ptid (ptid);
to:
switch_to_thread (ptid);
It helps to leave things more uniform across the code.
Regtested on BuildBot.
gdb/gdbserver/ChangeLog:
yyyy-mm-dd Sergio Durigan Junior <sergiodj@redhat.com>
* gdbthread.h: Include "common-gdbthread.h".
* remote-utils.c: Include "gdbthread.h".
(prepare_resume_reply): Use "switch_to_thread".
* target.c (set_desired_thread): Likewise.
(done_accessing_memory): Likewise.
---
gdb/gdbserver/gdbthread.h | 1 +
gdb/gdbserver/remote-utils.c | 3 ++-
gdb/gdbserver/target.c | 9 +++------
3 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/gdb/gdbserver/gdbthread.h b/gdb/gdbserver/gdbthread.h
index 04cc47ba71..a864f95884 100644
--- a/gdb/gdbserver/gdbthread.h
+++ b/gdb/gdbserver/gdbthread.h
@@ -19,6 +19,7 @@
#ifndef GDB_THREAD_H
#define GDB_THREAD_H
+#include "common-gdbthread.h"
#include "inferiors.h"
struct btrace_target_info;
diff --git a/gdb/gdbserver/remote-utils.c b/gdb/gdbserver/remote-utils.c
index 25b7e41a91..761604683c 100644
--- a/gdb/gdbserver/remote-utils.c
+++ b/gdb/gdbserver/remote-utils.c
@@ -23,6 +23,7 @@
#include "tdesc.h"
#include "dll.h"
#include "rsp-low.h"
+#include "gdbthread.h"
#include <ctype.h>
#if HAVE_SYS_IOCTL_H
#include <sys/ioctl.h>
@@ -1188,7 +1189,7 @@ prepare_resume_reply (char *buf, ptid_t ptid,
saved_thread = current_thread;
- current_thread = find_thread_ptid (ptid);
+ switch_to_thread (ptid);
regp = current_target_desc ()->expedite_regs;
diff --git a/gdb/gdbserver/target.c b/gdb/gdbserver/target.c
index 752646310a..2226dc802d 100644
--- a/gdb/gdbserver/target.c
+++ b/gdb/gdbserver/target.c
@@ -26,14 +26,11 @@ struct target_ops *the_target;
int
set_desired_thread (int use_general)
{
- struct thread_info *found;
-
if (use_general == 1)
- found = find_thread_ptid (general_thread);
+ switch_to_thread (general_thread);
else
- found = find_thread_ptid (cont_thread);
+ switch_to_thread (cont_thread);
- current_thread = found;
return (current_thread != NULL);
}
@@ -143,7 +140,7 @@ done_accessing_memory (void)
/* Restore the previous selected thread. */
general_thread = prev_general_thread;
- current_thread = find_thread_ptid (general_thread);
+ switch_to_thread (general_thread);
}
int
--
2.13.3