diff options
author | Andrew Cagney <cagney@redhat.com> | 2005-01-19 22:54:56 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 2005-01-19 22:54:56 +0000 |
commit | e06e235377b5e6a9c4a45c9443b84e5142ff8bec (patch) | |
tree | 09806d1c2df68ee66ef04c27d0596d91be9935d6 | |
parent | 065a1afc0492b6d06eb1e890c8c27d04dfc42639 (diff) | |
download | gdb-e06e235377b5e6a9c4a45c9443b84e5142ff8bec.zip gdb-e06e235377b5e6a9c4a45c9443b84e5142ff8bec.tar.gz gdb-e06e235377b5e6a9c4a45c9443b84e5142ff8bec.tar.bz2 |
2005-01-19 Andrew Cagney <cagney@gnu.org>
* utils.c (quit): Simplify, call fatal.
* exceptions.c: Include "serial.h"
(print_flush): Mimic flush code found in utils.c:quit.
* Makefile.in: Update dependencies.
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/Makefile.in | 2 | ||||
-rw-r--r-- | gdb/exceptions.c | 21 | ||||
-rw-r--r-- | gdb/utils.c | 34 |
4 files changed, 31 insertions, 33 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 7a83a29..9c75a27 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2005-01-19 Andrew Cagney <cagney@gnu.org> + + * utils.c (quit): Simplify, call fatal. + * exceptions.c: Include "serial.h" + (print_flush): Mimic flush code found in utils.c:quit. + * Makefile.in: Update dependencies. + 2005-01-19 Jim Blandy <jimb@redhat.com> * configure.tgt: Set build_rdi_share to "yes" on those targets diff --git a/gdb/Makefile.in b/gdb/Makefile.in index 2fdfa08..6a530ba 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -1898,7 +1898,7 @@ event-top.o: event-top.c $(defs_h) $(top_h) $(inferior_h) $(target_h) \ $(exceptions_h) $(gdbcmd_h) $(readline_h) $(readline_history_h) exceptions.o: exceptions.c $(defs_h) $(exceptions_h) $(breakpoint_h) \ $(target_h) $(inferior_h) $(annotate_h) $(ui_out_h) $(gdb_assert_h) \ - $(gdb_string_h) + $(gdb_string_h) $(serial_h) exec.o: exec.c $(defs_h) $(frame_h) $(inferior_h) $(target_h) $(gdbcmd_h) \ $(language_h) $(symfile_h) $(objfiles_h) $(completer_h) $(value_h) \ $(exec_h) $(readline_h) $(gdb_string_h) $(gdbcore_h) $(gdb_stat_h) \ diff --git a/gdb/exceptions.c b/gdb/exceptions.c index 9219462..fae2372 100644 --- a/gdb/exceptions.c +++ b/gdb/exceptions.c @@ -31,6 +31,7 @@ #include "ui-out.h" #include "gdb_assert.h" #include "gdb_string.h" +#include "serial.h" const struct exception exception_none = { 0, NO_ERROR, NULL }; @@ -262,11 +263,29 @@ deprecated_throw_reason (enum return_reason reason) static void print_flush (void) { + struct serial *gdb_stdout_serial; + if (deprecated_error_begin_hook) deprecated_error_begin_hook (); target_terminal_ours (); - wrap_here (""); /* Force out any buffered output */ + + /* We want all output to appear now, before we print the error. We + have 3 levels of buffering we have to flush (it's possible that + some of these should be changed to flush the lower-level ones + too): */ + + /* 1. The _filtered buffer. */ + wrap_here (""); + + /* 2. The stdio buffer. */ gdb_flush (gdb_stdout); + gdb_flush (gdb_stderr); + + /* 3. The system-level buffer. */ + gdb_stdout_serial = serial_fdopen (1); + serial_drain_output (gdb_stdout_serial); + serial_un_fdopen (gdb_stdout_serial); + annotate_error_begin (); } diff --git a/gdb/utils.c b/gdb/utils.c index 243fc75..55ee7ec 100644 --- a/gdb/utils.c +++ b/gdb/utils.c @@ -880,47 +880,19 @@ print_sys_errmsg (const char *string, int errcode) void quit (void) { - struct serial *gdb_stdout_serial = serial_fdopen (1); - - target_terminal_ours (); - - /* We want all output to appear now, before we print "Quit". We - have 3 levels of buffering we have to flush (it's possible that - some of these should be changed to flush the lower-level ones - too): */ - - /* 1. The _filtered buffer. */ - wrap_here ((char *) 0); - - /* 2. The stdio buffer. */ - gdb_flush (gdb_stdout); - gdb_flush (gdb_stderr); - - /* 3. The system-level buffer. */ - serial_drain_output (gdb_stdout_serial); - serial_un_fdopen (gdb_stdout_serial); - - annotate_error_begin (); - - /* Don't use *_filtered; we don't want to prompt the user to continue. */ - if (quit_pre_print) - fputs_unfiltered (quit_pre_print, gdb_stderr); - #ifdef __MSDOS__ /* No steenking SIGINT will ever be coming our way when the program is resumed. Don't lie. */ - fprintf_unfiltered (gdb_stderr, "Quit\n"); + fatal ("Quit"); #else if (job_control /* If there is no terminal switching for this target, then we can't possibly get screwed by the lack of job control. */ || current_target.to_terminal_ours == NULL) - fprintf_unfiltered (gdb_stderr, "Quit\n"); + fatal ("Quit"); else - fprintf_unfiltered (gdb_stderr, - "Quit (expect signal SIGINT when the program is resumed)\n"); + fatal ("Quit (expect signal SIGINT when the program is resumed)"); #endif - deprecated_throw_reason (RETURN_QUIT); } /* Control C comes here */ |