aboutsummaryrefslogtreecommitdiff
path: root/gdb/python/py-threadevent.c
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2017-09-05 12:07:00 -0600
committerTom Tromey <tom@tromey.com>2017-09-11 14:15:20 -0600
commit7c96f8c1dae023c7d0b1cabc5e50c4d18fd06960 (patch)
treed842c8f82408e17bde8e8e27a298d7c24a65f91c /gdb/python/py-threadevent.c
parent4ec521f238627f7682306d699c8826390a2cc9e7 (diff)
downloadgdb-7c96f8c1dae023c7d0b1cabc5e50c4d18fd06960.zip
gdb-7c96f8c1dae023c7d0b1cabc5e50c4d18fd06960.tar.gz
gdb-7c96f8c1dae023c7d0b1cabc5e50c4d18fd06960.tar.bz2
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.
Diffstat (limited to 'gdb/python/py-threadevent.c')
-rw-r--r--gdb/python/py-threadevent.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/gdb/python/py-threadevent.c b/gdb/python/py-threadevent.c
index 9217444..7211fa2 100644
--- a/gdb/python/py-threadevent.c
+++ b/gdb/python/py-threadevent.c
@@ -48,17 +48,18 @@ get_event_thread (void)
}
PyObject *
-create_thread_event_object (PyTypeObject *py_type)
+create_thread_event_object (PyTypeObject *py_type, PyObject *thread)
{
- PyObject *thread = NULL;
-
gdbpy_ref<> thread_event_obj (create_event_object (py_type));
if (thread_event_obj == NULL)
return NULL;
- thread = get_event_thread ();
- if (!thread)
- return NULL;
+ if (thread == NULL)
+ {
+ thread = get_event_thread ();
+ if (!thread)
+ return NULL;
+ }
if (evpy_add_attribute (thread_event_obj.get (),
"inferior_thread",