summaryrefslogtreecommitdiff
path: root/gdb/python
diff options
context:
space:
mode:
authorCatalin Udma <catalin.udma@freescale.com>2016-02-29 16:16:19 +0200
committerCatalin Udma <catalin.udma@freescale.com>2016-03-31 15:32:38 +0300
commite7ea3ec7c623be0b9be1eaf4929794652a84be11 (patch)
tree4b8fca9e668f79d3e4239c1204a61672b5c11fb7 /gdb/python
parentf7c382926d78b2d6d96b02275e6e16797b132d71 (diff)
downloadbinutils-gdb-e7ea3ec7c623be0b9be1eaf4929794652a84be11.tar.gz
python: Use console format for output of gdb.execute command
When gdb is started in MI mode, the output of gdb.execute command is in MI-format in case when it is executed from python stop handler while for all other cases the output is in console-format. To assure consistent output format, this is fixed by using the console format for all python gdb command executions. PR python/19743 gdb/ChangeLog: 2016-03-31 Catalin Udma <catalin.udma@freescale.com> PR python/19743 * python/python.c (execute_gdb_command): Use console uiout when executing gdb command. * utils.c (restore_ui_out_closure): New structure. (do_restore_ui_out): New function. (make_cleanup_restore_ui_out): Likewise. * utils.h (make_cleanup_restore_ui_out): Declare. gdb/testsuite/ChangeLog: 2016-03-31 Catalin Udma <catalin.udma@freescale.com> PR python/19743 * gdb.python/py-mi-events-gdb.py: New file. * gdb.python/py-mi-events.c: New file. * gdb.python/py-mi-events.exp: New file. Signed-off-by: Catalin Udma <catalin.udma@freescale.com>
Diffstat (limited to 'gdb/python')
-rw-r--r--gdb/python/python.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gdb/python/python.c b/gdb/python/python.c
index 84f05965e1f..e467134849e 100644
--- a/gdb/python/python.c
+++ b/gdb/python/python.c
@@ -658,10 +658,17 @@ execute_gdb_command (PyObject *self, PyObject *args, PyObject *kw)
/* Copy the argument text in case the command modifies it. */
char *copy = xstrdup (arg);
struct cleanup *cleanup = make_cleanup (xfree, copy);
+ struct interp *interp;
make_cleanup_restore_integer (&interpreter_async);
interpreter_async = 0;
+ make_cleanup_restore_ui_out (&current_uiout);
+ /* Use the console interpreter uiout to have the same print format
+ for console or MI. */
+ interp = interp_lookup ("console");
+ current_uiout = interp_ui_out (interp);
+
prevent_dont_repeat ();
if (to_string)
result = execute_command_to_string (copy, from_tty);