This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [MI, doc] flush output in -gdb-exit


On Thursday 17 December 2009 22:56:08 Eli Zaretskii wrote:

> > From: Vladimir Prus <vladimir@codesourcery.com>
> > Date: Thu, 17 Dec 2009 10:46:03 +0300
> > 
> > OK?
> 
> Yes, after this:
> 
> > +take some time for GDB to actually exit.  During that time, GDB
>                       ^^^                                      ^^^
> @value{GDBN}
> 
> > +performs necessary cleanups, including killing programs being debugged
> > +or disconnecting from debug hardware, so the frontend should wait till
> > +GDB exits and should only forcibly kill GDB if it fails to exit in
>    ^^^                                     ^^^
> Likewise.

Thanks for review. Here's what I've checked in.

- Volodya
Index: gdb/ChangeLog
===================================================================
RCS file: /cvs/src/src/gdb/ChangeLog,v
retrieving revision 1.11158
diff -u -p -r1.11158 ChangeLog
--- gdb/ChangeLog	21 Dec 2009 09:50:26 -0000	1.11158
+++ gdb/ChangeLog	21 Dec 2009 10:01:18 -0000
@@ -1,5 +1,9 @@
 2009-12-21  Vladimir Prus  <vladimir@codesourcery.com>
 
+	* mi/mi-main.c (mi_cmd_gdb_exit): Flush raw_stdout.
+
+2009-12-21  Vladimir Prus  <vladimir@codesourcery.com>
+
 	PR gdb/10884
 
 	* value.c (value_primitive_field): Call check_typedef
Index: gdb/doc/ChangeLog
===================================================================
RCS file: /cvs/src/src/gdb/doc/ChangeLog,v
retrieving revision 1.982
diff -u -p -r1.982 ChangeLog
--- gdb/doc/ChangeLog	21 Dec 2009 07:30:10 -0000	1.982
+++ gdb/doc/ChangeLog	21 Dec 2009 10:01:19 -0000
@@ -1,3 +1,8 @@
+2009-12-21  Vladimir Prus  <vladimir@codesourcery.com>
+
+	* gdb.texinfo (GDB/MI Miscellaneous Commands): Clarify that
+	-gdb-exit behaviour.
+
 2009-12-20  Joel Brobecker  <brobecker@adacore.com>
 
 	* gpl.texi: Update to version 3 of the GPL.
Index: gdb/doc/gdb.texinfo
===================================================================
RCS file: /cvs/src/src/gdb/doc/gdb.texinfo,v
retrieving revision 1.648
diff -u -p -r1.648 gdb.texinfo
--- gdb/doc/gdb.texinfo	8 Dec 2009 14:06:02 -0000	1.648
+++ gdb/doc/gdb.texinfo	21 Dec 2009 10:01:20 -0000
@@ -21955,6 +21955,13 @@ Quitting @value{GDBN} just prints the re
 <- ^exit
 @end smallexample
 
+Please note that @samp{^exit} is printed immediately, but it might
+take some time for @value{GDBN} to actually exit.  During that time, @value{GDBN}
+performs necessary cleanups, including killing programs being debugged
+or disconnecting from debug hardware, so the frontend should wait till
+@value{GDBN} exits and should only forcibly kill @value{GDBN} if it
+fails to exit in reasonable time.
+
 @subheading A Bad Command
 
 Here's what happens if you pass a non-existent command:
Index: gdb/mi/mi-main.c
===================================================================
RCS file: /cvs/src/src/gdb/mi/mi-main.c,v
retrieving revision 1.159
diff -u -p -r1.159 mi-main.c
--- gdb/mi/mi-main.c	30 Oct 2009 17:34:53 -0000	1.159
+++ gdb/mi/mi-main.c	21 Dec 2009 10:01:20 -0000
@@ -111,6 +111,7 @@ mi_cmd_gdb_exit (char *command, char **a
     fputs_unfiltered (current_token, raw_stdout);
   fputs_unfiltered ("^exit\n", raw_stdout);
   mi_out_put (uiout, raw_stdout);
+  gdb_flush (raw_stdout);
   /* FIXME: The function called is not yet a formal libgdb function.  */
   quit_force (NULL, FROM_TTY);
 }

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]