aboutsummaryrefslogtreecommitdiff
path: root/gdb/top.c
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2010-09-11 16:00:27 +0000
committerJan Kratochvil <jan.kratochvil@redhat.com>2010-09-11 16:00:27 +0000
commit8d4d924b76392dfd191e5bc0e54381befb9af0af (patch)
tree145c81b97f6ffe3485a2641514e10ec4eab38b68 /gdb/top.c
parent84f49b315b57025e0400e2b5d66b49bef3e16e23 (diff)
downloadfsf-binutils-gdb-8d4d924b76392dfd191e5bc0e54381befb9af0af.zip
fsf-binutils-gdb-8d4d924b76392dfd191e5bc0e54381befb9af0af.tar.gz
fsf-binutils-gdb-8d4d924b76392dfd191e5bc0e54381befb9af0af.tar.bz2
gdb/
Redirect also uiout and stdtarg{,err} in execute_command_to_string. * cli-logging.c (struct saved_output_files) <targerr>: New. (set_logging_redirect, pop_output_files, handle_redirections): Redirect also gdb_stdtargerr. * defs.h (struct ui_out, make_cleanup_ui_out_redirect_pop): New declarations. * event-top.c (gdb_setup_readline, gdb_disable_readline): Redirect also gdb_stdtargerr. * top.c (execute_command_to_string): Move make_cleanup_ui_file_delete to the top. Redirect also gdb_stdlog, gdb_stdtarg and gdb_stdtargerr. Use ui_out_redirect, register make_cleanup_ui_out_redirect_pop. * tui/tui-io.c (tui_setup_io): Redirect also gdb_stdtargerr. * utils.c (do_ui_out_redirect_pop, make_cleanup_ui_out_redirect_pop): New functions. gdb/testsuite/ * gdb.python/python.exp (set height 0, collect help from uiout) (verify help to uiout): New tests.
Diffstat (limited to 'gdb/top.c')
-rw-r--r--gdb/top.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/gdb/top.c b/gdb/top.c
index b29e68d..8ddb2c6 100644
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -475,12 +475,23 @@ execute_command_to_string (char *p, int from_tty)
str_file = mem_fileopen ();
+ make_cleanup_ui_file_delete (str_file);
make_cleanup_restore_ui_file (&gdb_stdout);
make_cleanup_restore_ui_file (&gdb_stderr);
- make_cleanup_ui_file_delete (str_file);
+ make_cleanup_restore_ui_file (&gdb_stdlog);
+ make_cleanup_restore_ui_file (&gdb_stdtarg);
+ make_cleanup_restore_ui_file (&gdb_stdtargerr);
+
+ if (ui_out_redirect (uiout, str_file) < 0)
+ warning (_("Current output protocol does not support redirection"));
+ else
+ make_cleanup_ui_out_redirect_pop (uiout);
gdb_stdout = str_file;
gdb_stderr = str_file;
+ gdb_stdlog = str_file;
+ gdb_stdtarg = str_file;
+ gdb_stdtargerr = str_file;
execute_command (p, from_tty);