From 5df43998152f7096f8eed45c24a4fad5a3244d8b Mon Sep 17 00:00:00 2001 From: Gary Benson Date: Tue, 5 Aug 2014 13:25:48 +0100 Subject: [PATCH] Make error usable earlier error (and other exception-throwing functions) are callable from the first line of captured_main, but the exception printing code will crash if called before the first call to set_width. This commit makes the exception printing code usable from the moment gdb_stderr is set up. gdb/ChangeLog: * exceptions.c (print_flush): Protect calls to target_terminal_ours and wrap_here. --- gdb/ChangeLog | 5 +++++ gdb/exceptions.c | 7 +++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 1a086ca210..8504cb9132 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2014-08-29 Gary Benson + + * exceptions.c (print_flush): Protect calls to + target_terminal_ours and wrap_here. + 2014-08-29 Gary Benson * utils.h (filtered_printing_initialized): New declaration. diff --git a/gdb/exceptions.c b/gdb/exceptions.c index 38e966c4ed..063d2b1566 100644 --- a/gdb/exceptions.c +++ b/gdb/exceptions.c @@ -239,7 +239,9 @@ print_flush (void) if (deprecated_error_begin_hook) deprecated_error_begin_hook (); - target_terminal_ours (); + + if (target_supports_terminal_ours ()) + target_terminal_ours (); /* 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 @@ -247,7 +249,8 @@ print_flush (void) too): */ /* 1. The _filtered buffer. */ - wrap_here (""); + if (filtered_printing_initialized ()) + wrap_here (""); /* 2. The stdio buffer. */ gdb_flush (gdb_stdout);