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]

Re: [gdbserver/win32]: Ignore OUTPUT_DEBUG_STRING_EVENT events when remote is not connected.


Daniel Jacobowitz wrote:
On Sun, Jul 08, 2007 at 02:01:14AM +0100, Pedro Alves wrote:
Hi,

OUTPUT_DEBUG_STRING_EVENT events can happen from after the inferior
is created, until it is stopped at the initial breakpoint, waiting
for gdb.  The OUTPUT_DEBUG_STRING_EVENT handler doesn't currently
check if a remote connection is open before sending data, generating
annoying putpkt error logs to gdbserver's console.  This
patch fixes it by simply ignoring those events when there isn't any
gdb connected yet.  I didn't use server_wait, because this event
is also handled in win32_kill, outside of a wait.

But don't you want to discard it if you're outside of a wait? I don't see how GDB would display them otherwise; remote_wait handles the 'O' response.


I woke up this morning hoping you still hadn't looked at this path yet. :) Sorry for the extra review work.

Here goes a new version using server_waiting.  If you don't mind, I would
like to keep the option to see the outputs in debug mode.  I've had a use
for it in the past.

Cheers,
Pedro Alves



2007-07-08  Pedro Alves  <pedro_alves@portugalmail.pt>

	* win32-low.c (handle_output_debug_string): Ignore event if not	waiting.

---
 gdb/gdbserver/win32-low.c |   10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

Index: src/gdb/gdbserver/win32-low.c
===================================================================
--- src.orig/gdb/gdbserver/win32-low.c	2007-07-08 15:14:56.000000000 +0100
+++ src/gdb/gdbserver/win32-low.c	2007-07-08 15:27:26.000000000 +0100
@@ -568,7 +568,15 @@ handle_output_debug_string (struct targe
     }
 
   if (strncmp (s, "cYg", 3) != 0)
-    monitor_output (s);
+    {
+      if (!server_waiting)
+	{
+	  OUTMSG2(("%s", s));
+	  return;
+	}
+
+      monitor_output (s);
+    }
 #undef READ_BUFFER_LEN
 }
 


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