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]

[RFC 11/17] Implement event-loop glue for gdbserver


event-loop.c requires the client to provide some functions.  This
patch implements these functions for gdbserver.

gdb/gdbserver/ChangeLog
2019-02-24  Tom Tromey  <tom@tromey.com>

	* server.c (handle_event_loop_exception)
	(invoke_async_signal_handlers, check_async_event_handlers)
	(flush_streams, gdb_select): New functions.
---
 gdb/gdbserver/ChangeLog |  6 ++++++
 gdb/gdbserver/server.c  | 44 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 50 insertions(+)

diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c
index e960c10d402..1b2b86813fb 100644
--- a/gdb/gdbserver/server.c
+++ b/gdb/gdbserver/server.c
@@ -4503,6 +4503,50 @@ handle_target_event (int err, gdb_client_data client_data)
   return 0;
 }
 
+/* See common/event-loop.h.  */
+
+void
+handle_event_loop_exception (const gdb_exception &ex)
+{
+  /* gdbserver relies on any exception in getpkt escaping from the
+     event loop, to be caught in captured_main.  */
+  throw_exception (ex);
+}
+
+/* See common/event-loop.h.  */
+
+int
+invoke_async_signal_handlers ()
+{
+  return 0;
+}
+
+/* See common/event-loop.h.  */
+
+int
+check_async_event_handlers ()
+{
+  return 0;
+}
+
+/* See common/errors.h  */
+
+void
+flush_streams ()
+{
+  fflush (stdout);
+  fflush (stderr);
+}
+
+/* See common/gdb_select.h.  */
+
+int
+gdb_select (int n, fd_set *readfds, fd_set *writefds,
+	    fd_set *exceptfds, struct timeval *timeout)
+{
+  return select (n, readfds, writefds, exceptfds, timeout);
+}
+
 #if GDB_SELF_TEST
 namespace selftests
 {
-- 
2.17.2


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