2008-10-10  Michael Snyder  <msnyder@vmware.com>

	* gdbfreeplay-back.c (handle_special_case): Add support for
	running off the ends of the replay log ('E06').

2008-09-10  Michael Snyder  <msnyder@vmware.com>

	* gdbfreeplay-back.c (handle_special_case): Add support for
	reverse debugging.
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index 33f68ba..0fb03f6 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,3 +1,13 @@
+2008-10-10  Michael Snyder  <msnyder@vmware.com>
+
+	* gdbfreeplay-back.c (handle_special_case): Add support for
+	running off the ends of the replay log ('E06').
+
+2008-09-10  Michael Snyder  <msnyder@vmware.com>
+
+	* gdbfreeplay-back.c (handle_special_case): Add support for 
+	reverse debugging.
+
 2008-06-25  Michael Snyder  <msnyder@specifix.com>
 
 	* gdbfreeplay-back.c (frame_find_request): Rewrite loop to 
diff --git a/gdb/gdbserver/gdbfreeplay-back.c b/gdb/gdbserver/gdbfreeplay-back.c
index 7d7cf41..f014328 100644
--- a/gdb/gdbserver/gdbfreeplay-back.c
+++ b/gdb/gdbserver/gdbfreeplay-back.c
@@ -710,6 +710,7 @@
 static char EMPTY[8] = "$#00";
 static char STOP[8]  = "$S00#44";
 static char E01[8]   = "$E01#a6";
+static char E06[8]   = "$E06#ab";
 
 static char *
 handle_special_case (FILE *infile, int fd, char *request)
@@ -870,7 +871,12 @@
 	}
       else
 	{
+	  /* Reached end of replay log.  */
 	  cur_frame = last_cached_frame;
+	  gdb_ack (fd);
+	  if (verbose)
+	    fprintf (stdout, "Reached end of replay log.\n");
+	  return E06;
 	}
 
       /* Find the original event message for this stop event.  */
@@ -906,13 +912,13 @@
 	}
       else
 	{
-	  /* WTF? */
+	  /* If we didn't find an event, we presumably ran off
+	     the end of the replay log.  */
 	  gdb_ack (fd);
-	  strcpy (inbuf, "$O5768617420746865206675636b3f");
 	  if (verbose)
-	    fprintf (stdout, "WTF? %s\n", add_checksum (inbuf));
-	  gdbwriteline (fd, add_checksum (inbuf));
+	    fprintf (stdout, "Reached beginning of replay log.\n");
 	  cur_frame = 0;
+	  return E06;
 	}
 
       /* Find the original event message for this stop event.  */