aboutsummaryrefslogtreecommitdiff
path: root/gdb/python/py-events.h
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2017-09-08 15:38:12 -0600
committerTom Tromey <tom@tromey.com>2017-09-11 14:15:22 -0600
commit7d221d749c0239f06ca571be6c9452cd22b5d582 (patch)
tree0195f0e127b789e980939faeb79c6ed13ef7fd3d /gdb/python/py-events.h
parent35c61a1dd5462ceab42618c48c9a60238245761b (diff)
downloadgdb-7d221d749c0239f06ca571be6c9452cd22b5d582.zip
gdb-7d221d749c0239f06ca571be6c9452cd22b5d582.tar.gz
gdb-7d221d749c0239f06ca571be6c9452cd22b5d582.tar.bz2
Make it simpler to add events to Python
The first patch in this series went through several iterations as I'd forgotten how many places had to be touched to add a new event and a new event type. This patch simplifies the process using two new ".def" files. Now, a new event type can be added by adding a line to "py-event-types.def", and a new event registry can be added by adding a line to "py-all-events.def". ChangeLog 2017-09-11 Tom Tromey <tom@tromey.com> * python/python.c (do_start_initialization): Use py-event-types.def to initialize types. Define all object type structures. * python/python-internal.h: Don't declare event initialization functions. * python/py-threadevent.c (thread_event_object_type): Don't define. * python/py-stopevent.c (stop_event_object_type): Don't define. * python/py-signalevent.c (signal_event_object_type): Don't declare or define. * python/py-newobjfileevent.c (new_objfile_event_object_type) (clear_objfiles_event_object_type): Don't declare or define. * python/py-infevents.c (inferior_call_pre_event_object_type) (inferior_call_post_event_object_type) (register_changed_event_object_type) (memory_changed_event_object_type): Don't declare or define. * python/py-inferior.c (new_thread_event_object_type) (new_inferior_event_object_type) (inferior_deleted_event_object_type): Don't declare or define. * python/py-exitedevent.c (exited_event_object_type): Don't declare or define. * python/py-evts.c (gdbpy_initialize_py_events): Use py-all-events.def. * python/py-events.h (thread_event_object_type): Don't declare. (events_object): Use py-all-events.def. * python/py-event.h (GDBPY_NEW_EVENT_TYPE): Remove. Use py-event-types.def. * python/py-event-types.def: New file. * python/py-continueevent.c (create_continue_event_object): Don't declare or define. * python/py-bpevent.c (breakpoint_event_object_type): Don't declare or define. * python/py-all-events.def: New file.
Diffstat (limited to 'gdb/python/py-events.h')
-rw-r--r--gdb/python/py-events.h22
1 files changed, 4 insertions, 18 deletions
diff --git a/gdb/python/py-events.h b/gdb/python/py-events.h
index 2275d89..876b564 100644
--- a/gdb/python/py-events.h
+++ b/gdb/python/py-events.h
@@ -24,9 +24,6 @@
#include "python-internal.h"
#include "inferior.h"
-extern PyTypeObject thread_event_object_type
- CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("event_object");
-
/* Stores a list of objects to be notified when the event for which this
registry tracks occurs. */
@@ -42,21 +39,10 @@ typedef struct
typedef struct
{
- eventregistry_object *stop;
- eventregistry_object *cont;
- 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;
- eventregistry_object *breakpoint_created;
- eventregistry_object *breakpoint_deleted;
- eventregistry_object *breakpoint_modified;
- eventregistry_object *before_prompt;
+#define GDB_PY_DEFINE_EVENT(name) \
+ eventregistry_object *name;
+#include "py-all-events.def"
+#undef GDB_PY_DEFINE_EVENT
PyObject *module;