summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Snyder <msnyder@specifix.com>2008-06-26 00:23:57 +0000
committerMichael Snyder <msnyder@specifix.com>2008-06-26 00:23:57 +0000
commit9bd07601d619fcf4957d3489ece6d8ba2737ae1e (patch)
treee6d9465ad7c09c7632c43df5f035391f8f962b84
parenta9d88e0e9123304ed7b3549a33dd044625c4be19 (diff)
downloadgdb-msnyder-reverse-20080609-branch.tar.gz
2008-06-25 Michael Snyder <msnyder@specifix.com>msnyder-reverse-20080609-branchcvs/msnyder-reverse-20080609-branch
* gdbfreeplay-back.c (frame_find_request): Rewrite loop to avoid fencepost error on last frame.
-rw-r--r--gdb/gdbserver/ChangeLog5
-rw-r--r--gdb/gdbserver/gdbfreeplay-back.c9
2 files changed, 10 insertions, 4 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index 70b3306feef..259a081f1e4 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,3 +1,8 @@
+2008-06-25 Michael Snyder <msnyder@specifix.com>
+
+ * gdbfreeplay-back.c (frame_find_request): Rewrite loop to
+ avoid fencepost error on last frame.
+
2008-06-23 Michael Snyder <msnyder@specifix.com>
* gdbfreeplay.h: Replace all address values with unsigned long long.
diff --git a/gdb/gdbserver/gdbfreeplay-back.c b/gdb/gdbserver/gdbfreeplay-back.c
index bcfe49bfc17..7d7cf415beb 100644
--- a/gdb/gdbserver/gdbfreeplay-back.c
+++ b/gdb/gdbserver/gdbfreeplay-back.c
@@ -326,11 +326,12 @@ frame_find_request (FILE *logfile, char *request)
curpos = stopframe[cur_frame].eventpos;
fseek (logfile, curpos, SEEK_SET);
/* Now search for a matching request. */
- while (curpos < stopframe[cur_frame + 1].eventpos)
+ while ((line = fgets (inbuf, sizeof (inbuf), logfile)) != NULL)
{
- line = fgets (inbuf, sizeof (inbuf), logfile);
- /* End of input? */
- if (line == NULL)
+ /* End of current frame?
+ If we're the last frame, just read till the end of file. */
+ if (cur_frame < last_cached_frame &&
+ curpos >= stopframe[cur_frame + 1].eventpos)
break;
curpos = ftell (logfile);
if (strstr (line, request) != NULL)