aboutsummaryrefslogtreecommitdiff
path: root/gdb/cli
diff options
context:
space:
mode:
authorDoug Evans <dje@google.com>2015-08-18 14:02:03 -0700
committerDoug Evans <dje@google.com>2015-08-18 14:02:03 -0700
commit4d6cceb4e40a057dbe4d9ad94b0641d5f4725c09 (patch)
tree8c306120303ae7f18571664c14152cb8ed7f32ff /gdb/cli
parent4e1626f5a8d73573d6cf593fabe5bc80f7b3e04e (diff)
downloadgdb-4d6cceb4e40a057dbe4d9ad94b0641d5f4725c09.zip
gdb-4d6cceb4e40a057dbe4d9ad94b0641d5f4725c09.tar.gz
gdb-4d6cceb4e40a057dbe4d9ad94b0641d5f4725c09.tar.bz2
PR mi/18833 gdb.execute ("set param value", to_string=True) will crash gdb if using MI
gdb/ChangeLog: * cli/cli-logging.c (pop_output_files): Don't restore redirection if MI-like. * mi/mi-out.c: #include "vec.h". (ui_filep): New type. (DEV_VEC_P (ui_filep)): New type. (struct ui_out_data) <buffer, original_buffer>: Delete. (struct ui_out_data) <streams>: New member. (mi_ui_out_impl): Add data_destroy field. (mi_field_string, mi_field_fmt): Update. (mi_flush, mi_redirect, field_separator): Update. (mi_open, mi_close): Update. (mi_out_buffered, mi_out_rewind, mi_out_put): Update. (mi_out_data_ctor, mi_out_data_dtor): New functions. (mi_out_new): Call mi_out_data_ctor. testsuite/gdb/ChangeLog: * lib/gdb.exp (skip_python_tests_prompt): Renamed from skip_python_tests. New arg prompt_regexp. (skip_python_tests): New function. * lib/mi-support.exp (mi_skip_python_tests): New function. * gdb.python/py-mi-objfile-gdb.py: New file. * gdb.python/py-mi-objfile.c: New file. * gdb.python/py-mi-objfile.exp: New file.
Diffstat (limited to 'gdb/cli')
-rw-r--r--gdb/cli/cli-logging.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gdb/cli/cli-logging.c b/gdb/cli/cli-logging.c
index 7d340c1..c282260 100644
--- a/gdb/cli/cli-logging.c
+++ b/gdb/cli/cli-logging.c
@@ -177,7 +177,9 @@ pop_output_files (void)
saved_output.targ = NULL;
saved_output.targerr = NULL;
- ui_out_redirect (current_uiout, NULL);
+ /* Stay consistent with handle_redirections. */
+ if (!ui_out_is_mi_like_p (current_uiout))
+ ui_out_redirect (current_uiout, NULL);
}
/* This is a helper for the `set logging' command. */