From: Nathan Sidwell Date: Thu, 8 Jun 2006 19:08:22 +0000 (+0000) Subject: * remote-fileio.c (remote_fileio_reset): New. X-Git-Tag: newlib-csl-sourcerygxx-3_4_4-25~342 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ad9a8f3f0088e383aa284d3f654af2852ed59dac;p=platform%2Fupstream%2Fbinutils.git * remote-fileio.c (remote_fileio_reset): New. * remote-fileio.h (remote_fileio_reset): Prototype. * remote.c (extended_remote_restart, remote_open_1): Call it. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 928f9a6..9a48694 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,6 +1,10 @@ 2006-06-08 Nathan Sidwell - * 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 diff --git a/gdb/remote-fileio.c b/gdb/remote-fileio.c index 7056a34..d445d40 100644 --- a/gdb/remote-fileio.c +++ b/gdb/remote-fileio.c @@ -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) { diff --git a/gdb/remote.c b/gdb/remote.c index d06ac86..9b7483d 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -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 ();