This is the mail archive of the gdb-patches@sourceware.cygnus.com mailing list for the GDB project. See the GDB home page for more information.


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

Patch to support NACK packet from stub


I discovered that the putpkt() routine does not handle NACK ('-')
packets from remote stub, instead the NACK is junked and putpkt()
waits until the subsequent read times out.  This is a big penalty
(the default value of remote_timeout is 20 seconds) that can be 
easily avoided.

However, I had the '-' case fall through to SERIAL_TIMEOUT so the
number of attempts a packet is sent is the same as timeouts.  If we
wanted to add a remote_debug for the SERIAL_TIMEOUT case, that code
needs to duplicated.

	--jtc

1999-03-12  J.T. Conklin  <jtc@redbacknetworks.com>

	* remote.c (putpkt): Handle NACK ('-') packet from stub.

Index: remote.c
===================================================================
RCS file: /usr/rback/release/tools-src/gdb/gdb/remote.c,v
retrieving revision 1.5
diff -c -r1.5 remote.c
*** remote.c	1999/02/15 21:33:55	1.5
--- remote.c	1999/03/13 02:20:20
***************
*** 2537,2542 ****
--- 2537,2543 ----
  	      switch (ch)
  		{
  		case '+':
+ 		case '-':
  		case SERIAL_TIMEOUT:
  		case '$':
  		  if (started_error_output)
***************
*** 2553,2558 ****
--- 2554,2563 ----
  	      if (remote_debug)
  		printf_unfiltered ("Ack\n");
  	      return 1;
+ 	    case '-':
+ 	      if (remote_debug)
+ 		printf_unfiltered ("Nack\n");
+ 	      /* FALLTHROUGH */
  	    case SERIAL_TIMEOUT:
  	      tcount ++;
  	      if (tcount > 3)




-- 
J.T. Conklin
RedBack Networks