diff options
author | Catalin Udma <catalin.udma@freescale.com> | 2016-02-29 16:16:19 +0200 |
---|---|---|
committer | Catalin Udma <catalin.udma@freescale.com> | 2016-03-31 15:32:38 +0300 |
commit | e7ea3ec7c623be0b9be1eaf4929794652a84be11 (patch) | |
tree | 4b8fca9e668f79d3e4239c1204a61672b5c11fb7 /gdb/testsuite/gdb.python/py-mi-events-gdb.py | |
parent | f7c382926d78b2d6d96b02275e6e16797b132d71 (diff) | |
download | gdb-e7ea3ec7c623be0b9be1eaf4929794652a84be11.zip gdb-e7ea3ec7c623be0b9be1eaf4929794652a84be11.tar.gz gdb-e7ea3ec7c623be0b9be1eaf4929794652a84be11.tar.bz2 |
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/testsuite/gdb.python/py-mi-events-gdb.py')
-rw-r--r-- | gdb/testsuite/gdb.python/py-mi-events-gdb.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.python/py-mi-events-gdb.py b/gdb/testsuite/gdb.python/py-mi-events-gdb.py new file mode 100644 index 0000000..0aa4fda --- /dev/null +++ b/gdb/testsuite/gdb.python/py-mi-events-gdb.py @@ -0,0 +1,48 @@ +# Copyright (C) 2016 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# This file is part of the GDB testsuite. It tests python printing +# to string from event handlers. + + +import gdb + + +def signal_stop_handler (event): + """Stop event handler""" + assert (isinstance (event, gdb.StopEvent)) + print ("stop_handler") + print gdb.execute("info break", False, True) + + +def continue_handler (event): + """Continue event handler""" + assert (isinstance (event, gdb.ContinueEvent)) + print ("continue_handler") + print gdb.execute("info break", False, True) + + +class test_events (gdb.Command): + """Test events.""" + + def __init__ (self): + gdb.Command.__init__ (self, "test-events", gdb.COMMAND_STACK) + + def invoke (self, arg, from_tty): + gdb.events.stop.connect (signal_stop_handler) + gdb.events.cont.connect (continue_handler) + print ("Event testers registered.") + +test_events () |