]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
2008-06-21 Michael Snyder <msnyder@specifix.com>
authorMichael Snyder <msnyder@vmware.com>
Sat, 21 Jun 2008 23:09:20 +0000 (23:09 +0000)
committerMichael Snyder <msnyder@vmware.com>
Sat, 21 Jun 2008 23:09:20 +0000 (23:09 +0000)
* gdbfreeplay-i386.c (target_pc_from_g): Accept a char * instead
of a FILE *.
* gdbfreeplay.h (target_pc_from_g): Change prototype.
* gdbfreeplay-back.c (scan_gdbreplay_file): Change call.

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

index e83af3cbd9250fd728bb83f496dc26f3ea838169..0b24e1858e264a9a47f02ee57ef5e6808f3487e2 100644 (file)
@@ -1,5 +1,10 @@
 2008-06-21  Michael Snyder  <msnyder@specifix.com>
 
+       * gdbfreeplay-i386.c (target_pc_from_g): Accept a char * instead
+       of a FILE *.
+       * gdbfreeplay.h (target_pc_from_g): Change prototype.
+       * gdbfreeplay-back.c (scan_gdbreplay_file): Change call.
+
        * gdbfreeplay-i386.c (target_compose_T_packet): Add default return.
        (target_compose_g_packet): New function.
        * gdbfreeplay.h (target_compose_g_packet): Export.
index 84e63cd0884a735ccb8d4a5376909a06f684c09d..da8d8d6e4fc1531b62a1234618d925cb70fbc6fc 100644 (file)
@@ -83,7 +83,11 @@ scan_gdbreplay_file (FILE *infile)
        /* See if we need to grab the PC from this packet.  */
        if (stopframe[last_cached_frame].pc == 0 ||
            stopframe[last_cached_frame].pc == (unsigned long) -1)
-         stopframe[last_cached_frame].pc = target_pc_from_g (infile);
+         {
+           nextpos = ftell (infile);
+           line = fgets (inbuf, sizeof (inbuf), infile);
+           stopframe[last_cached_frame].pc = target_pc_from_g (line);
+         }
       }
 
     /* Reset PC after breakpoint?  */
index ef4d96f8f8fa5e7ed44c5a557730cf38bdedd945..884389373d8fee974b1d8c9887700833501fbec6 100644 (file)
@@ -206,24 +206,19 @@ expand_rle (char *input)
  * Returns PC as host unsigned long.
  */
 
-#define INBUF_SIZE 1024
-static char inbuf [INBUF_SIZE];
-
 unsigned long
-target_pc_from_g (FILE *infile)
+target_pc_from_g (char *gpacket)
 {
-  char *line = fgets (inbuf, sizeof (inbuf), infile);
-
-  if (line[0] == 'r' && line[1] == ' ')
+  if (gpacket[0] == 'r' && gpacket[1] == ' ')
     {
-      line += 2;
-      if (line[0] == '+')
-       line++;
-      if (line[0] == '$')
-       line++;
+      gpacket += 2;
+      if (gpacket[0] == '+')
+       gpacket++;
+      if (gpacket[0] == '$')
+       gpacket++;
     }
 
-  return ix86_pc_from_registers (expand_rle (line));
+  return ix86_pc_from_registers (expand_rle (gpacket));
 }
 
 /*
index e337cf2189516d7126f1148f9984fbf0d6aef129..d9c70c540080ecbba6068b2c52c8b7dc4a417093 100644 (file)
@@ -14,7 +14,8 @@ extern void gdbfreeplay (int socket_fd);
 
 extern unsigned long target_pc_from_T (char *tpacket);
 extern unsigned long target_pc_from_G (char *gpacket);
-extern unsigned long target_pc_from_g (FILE *infile);
+extern unsigned long target_pc_from_g (char *gpacket);
+
 extern char *target_compose_T_packet (char *origTpacket, 
                                      unsigned long pc,
                                      int breakpoint_p);