Add new_inferior, inferior_deleted, and new_thread events

This adds a few new events to gdb's Python layer: new_inferior,
inferior_deleted, and new_thread.  I wanted to be able to add a
combined inferior/thread display window to my GUI, and I needed a few
events to make this work.  This is PR python/15622.

ChangeLog
2017-09-11  Tom Tromey  <tom@tromey.com>

	PR python/15622:
	* NEWS: Add entry.
	* python/python.c (do_start_initialization): Initialize new event
	types.
	* python/python-internal.h (gdbpy_initialize_new_inferior_event)
	(gdbpy_initialize_inferior_deleted_event)
	(gdbpy_initialize_new_thread_event): Declare.
	* python/py-threadevent.c (create_thread_event_object): Add option
	"thread" parameter.
	* python/py-inferior.c (new_thread_event_object_type)
	(new_inferior_event_object_type)
	(inferior_deleted_event_object_type): Declare.
	(python_new_inferior, python_inferior_deleted): New functions.
	(add_thread_object): Emit new_thread event.
	(gdbpy_initialize_inferior): Attach new functions to corresponding
	observers.
	(new_thread, new_inferior, inferior_deleted): Define new event
	types.
	* python/py-evts.c (gdbpy_initialize_py_events): Add new
	registries.
	* python/py-events.h (events_object) <new_inferior,
	inferior_deleted, new_thread>: New fields.
	* python/py-event.h (create_thread_event_breakpoint): Add optional
	"thread" parameter.

doc/ChangeLog
2017-09-11  Tom Tromey  <tom@tromey.com>

	* python.texi (Events In Python): Document new events.

testsuite/ChangeLog
2017-09-11  Tom Tromey  <tom@tromey.com>

	* gdb.python/py-infthread.exp: Add tests for new_thread event.
	* gdb.python/py-inferior.exp: Add tests for new inferior events.
This commit is contained in:
Tom Tromey 2017-09-05 12:07:00 -06:00
parent 4ec521f238
commit 7c96f8c1da
14 changed files with 229 additions and 7 deletions

View file

@ -47,6 +47,9 @@ typedef struct
eventregistry_object *exited;
eventregistry_object *new_objfile;
eventregistry_object *clear_objfiles;
eventregistry_object *new_inferior;
eventregistry_object *inferior_deleted;
eventregistry_object *new_thread;
eventregistry_object *inferior_call;
eventregistry_object *memory_changed;
eventregistry_object *register_changed;