aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Snyder <msnyder@vmware.com>2008-10-10 21:32:51 +0000
committerMichael Snyder <msnyder@vmware.com>2008-10-10 21:32:51 +0000
commita7425b5e70beee8a84e95f2f8d907d02c60dfd43 (patch)
tree894cd1825bc43cec4e618824bbaf05709ea529ca
parent31d80742bdf897861b0755a3b949f844c5327ae0 (diff)
downloadfsf-binutils-gdb-reverse-20080717-branch.zip
fsf-binutils-gdb-reverse-20080717-branch.tar.gz
fsf-binutils-gdb-reverse-20080717-branch.tar.bz2
2008-10-10 Michael Snyder <msnyder@vmware.com>reverse-20080717-branch
* 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.
-rw-r--r--gdb/gdbserver/ChangeLog10
-rw-r--r--gdb/gdbserver/gdbfreeplay-back.c14
2 files changed, 20 insertions, 4 deletions
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 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. */