2bcb1faff160668da327580b7a5d02f71f40c553
[external/binutils.git] / gdb / testsuite / gdb.python / py-mi-events-gdb.py
1 # Copyright (C) 2016 Free Software Foundation, Inc.
2
3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation; either version 3 of the License, or
6 # (at your option) any later version.
7 #
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 # GNU General Public License for more details.
12 #
13 # You should have received a copy of the GNU General Public License
14 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
15
16 # This file is part of the GDB testsuite.  It tests python printing
17 # to string from event handlers.
18
19
20 import gdb
21
22 stop_handler_str = ""
23 cont_handler_str = ""
24
25 def signal_stop_handler (event):
26     """Stop event handler"""
27     assert (isinstance (event, gdb.StopEvent))
28     global stop_handler_str
29     stop_handler_str = "stop_handler\n"
30     stop_handler_str += gdb.execute("info break", False, True)
31
32
33 def continue_handler (event):
34     """Continue event handler"""
35     assert (isinstance (event, gdb.ContinueEvent))
36     global cont_handler_str
37     cont_handler_str = "continue_handler\n"
38     cont_handler_str += gdb.execute("info break", False, True)
39
40
41 class test_events (gdb.Command):
42     """Test events."""
43
44     def __init__ (self):
45         gdb.Command.__init__ (self, "test-events", gdb.COMMAND_STACK)
46
47     def invoke (self, arg, from_tty):
48         gdb.events.stop.connect (signal_stop_handler)
49         gdb.events.cont.connect (continue_handler)
50         print ("Event testers registered.")
51
52 test_events ()