diff options
Diffstat (limited to 'gdb/testsuite/gdb.python/py-events.py')
-rw-r--r-- | gdb/testsuite/gdb.python/py-events.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.python/py-events.py b/gdb/testsuite/gdb.python/py-events.py index b21f562..57b0324 100644 --- a/gdb/testsuite/gdb.python/py-events.py +++ b/gdb/testsuite/gdb.python/py-events.py @@ -132,3 +132,28 @@ class test_newobj_events(gdb.Command): test_newobj_events() + +def gdb_exiting_handler(event, throw_error): + assert isinstance(event, gdb.GdbExitingEvent) + if throw_error: + raise gdb.GdbError("error from gdb_exiting_handler") + else: + print("event type: gdb-exiting") + print("exit code: %d" % (event.exit_code)) + +class test_exiting_event(gdb.Command): + """GDB Exiting event.""" + + def __init__(self): + gdb.Command.__init__(self, "test-exiting-event", gdb.COMMAND_STACK) + + def invoke(self, arg, from_tty): + if arg == "normal": + gdb.events.gdb_exiting.connect(lambda e: gdb_exiting_handler(e,False)) + elif arg == "error": + gdb.events.gdb_exiting.connect(lambda e: gdb_exiting_handler(e,True)) + else: + raise gdb.GdbError("invalid or missing argument") + print("GDB exiting event registered.") + +test_exiting_event() |