aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Prus <vladimir@codesourcery.com>2009-12-21 10:02:06 +0000
committerVladimir Prus <vladimir@codesourcery.com>2009-12-21 10:02:06 +0000
commita6b29f87728ddb9bd63ef54383fd540005c7b412 (patch)
treec656f2eb49f8a67d7adeeeb7844ca77a4f59a328
parent9e19b45e2ed724759be1034349274f006d5a8653 (diff)
downloadbinutils-a6b29f87728ddb9bd63ef54383fd540005c7b412.zip
binutils-a6b29f87728ddb9bd63ef54383fd540005c7b412.tar.gz
binutils-a6b29f87728ddb9bd63ef54383fd540005c7b412.tar.bz2
* mi/mi-main.c (mi_cmd_gdb_exit): Flush raw_stdout.
-rw-r--r--gdb/ChangeLog4
-rw-r--r--gdb/doc/ChangeLog5
-rw-r--r--gdb/doc/gdb.texinfo7
-rw-r--r--gdb/mi/mi-main.c1
4 files changed, 17 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 3ba2640..ea9d413 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -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
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index e1e019fc..aa6ab58 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -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.
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index e880838..40bbe07 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -21955,6 +21955,13 @@ Quitting @value{GDBN} just prints the result class @samp{^exit}.
<- ^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:
diff --git a/gdb/mi/mi-main.c b/gdb/mi/mi-main.c
index 2332752..0c8e917 100644
--- a/gdb/mi/mi-main.c
+++ b/gdb/mi/mi-main.c
@@ -111,6 +111,7 @@ mi_cmd_gdb_exit (char *command, char **argv, int argc)
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);
}