* remote-fileio.c (remote_fileio_reset): New.
authorNathan Sidwell <nathan@codesourcery.com>
Thu, 8 Jun 2006 19:08:22 +0000 (19:08 +0000)
committerNathan Sidwell <nathan@codesourcery.com>
Thu, 8 Jun 2006 19:08:22 +0000 (19:08 +0000)
* remote-fileio.h (remote_fileio_reset): Prototype.
* remote.c (extended_remote_restart, remote_open_1): Call it.

gdb/ChangeLog
gdb/remote-fileio.c
gdb/remote.c

index 928f9a6b9da48591a8390794ecbcd1c8fc4d1b38..9a486947e7b455694c95178f33726b7debdf2d2e 100644 (file)
@@ -1,6 +1,10 @@
 2006-06-08  Nathan Sidwell  <nathan@codesourcery.com>
 
-       * gdb/remote.c (remote_open_1): Do preopen tasks before
+       * remote-fileio.c (remote_fileio_reset): New.
+       * remote-fileio.h (remote_fileio_reset): Prototype.
+       * remote.c (extended_remote_restart, remote_open_1): Call it.
+
+       * remote.c (remote_open_1): Do preopen tasks before
        irreversably destroying state.
 
 2006-06-08  Daniel Jacobowitz  <dan@codesourcery.com>
index 7056a34e51b577aa9667c8ee82ac339732ddfee3..d445d40ac181e2456e3983b9fc7bdab117144787 100644 (file)
@@ -1355,6 +1355,28 @@ do_remote_fileio_request (struct ui_out *uiout, void *buf_arg)
   return 0;
 }
 
+/* Close any open descriptors, and reinitialize the file mapping.  */
+
+void
+remote_fileio_reset (void)
+{
+  int ix;
+
+  for (ix = 0; ix != remote_fio_data.fd_map_size; ix++)
+    {
+      int fd = remote_fio_data.fd_map[ix];
+
+      if (fd >= 0)
+       close (fd);
+    }
+  if (remote_fio_data.fd_map)
+    {
+      free (remote_fio_data.fd_map);
+      remote_fio_data.fd_map = NULL;
+      remote_fio_data.fd_map_size = 0;
+    }
+}
+
 void
 remote_fileio_request (char *buf)
 {
index d06ac86fedcead2e7ce4adaf2feea373c83b9cce..9b7483d2cb8dbcb7974647dcedd0cb55c0d088f5 100644 (file)
@@ -1818,6 +1818,8 @@ extended_remote_restart (void)
   xsnprintf (rs->buf, get_remote_packet_size (), "R%x", 0);
   putpkt (rs->buf);
 
+  remote_fileio_reset ();
+  
   /* Now query for status so this looks just like we restarted
      gdbserver from scratch.  */
   putpkt ("?");
@@ -2073,6 +2075,7 @@ remote_open_1 (char *name, int from_tty, struct target_ops *target,
 
   unpush_target (target);
 
+  remote_fileio_reset ();
   reopen_exec_file ();
   reread_symbols ();
 
This page took 0.033277 seconds and 4 git commands to generate.