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.
This commit is contained in:
Andrew Cagney 2005-01-19 22:54:56 +00:00
parent 065a1afc04
commit e06e235377
4 changed files with 31 additions and 33 deletions

View File

@ -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

View File

@ -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) \

View File

@ -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 ();
}

View File

@ -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 */