]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
2008-10-10 Michael Snyder <msnyder@vmware.com> reverse-20080717-branch
authorMichael Snyder <msnyder@vmware.com>
Fri, 10 Oct 2008 21:32:51 +0000 (21:32 +0000)
committerMichael Snyder <msnyder@vmware.com>
Fri, 10 Oct 2008 21:32:51 +0000 (21:32 +0000)
* 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.

gdb/gdbserver/ChangeLog
gdb/gdbserver/gdbfreeplay-back.c

index 33f68ba8623c649c9695fcde284e0a1d5ad4f80e..0fb03f6c0abc17f5f99bb173b9c822a32064691f 100644 (file)
@@ -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 
index 7d7cf415beb8c896cc80a70b3dd5a7fb2fbd8d37..f0143280aca53f3b51c3a098dce2e7a62f24f3e2 100644 (file)
@@ -710,6 +710,7 @@ static char OK[8]    = "$OK#9a";
 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 @@ handle_special_case (FILE *infile, int fd, char *request)
        }
       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 @@ handle_special_case (FILE *infile, int fd, char *request)
        }
       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.  */