binutils-gdb/gdb/python/py-event-types.def

108 lines
3.1 KiB
Modula-2
Raw Permalink Normal View History

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.
2017-09-08 23:38:12 +02:00
/* Python event definitions -*- c++ -*-
Copyright (C) 2017-2020 Free Software Foundation, Inc.
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.
2017-09-08 23:38:12 +02:00
This file is part of GDB.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* To use this file, define GDB_PY_DEFINE_EVENT_TYPE to expand how you
like, then include the file.
Each invocation is of the form:
GDB_PY_DEFINE_EVENT_TYPE(name, py_name, doc, base)
NAME is the name of the event.
PY_NAME a string representing what the event should be called in
python.
DOC Python documentation for the new event type
BASE the base event for this event usually just event_object_type.
*/
GDB_PY_DEFINE_EVENT_TYPE (breakpoint,
"BreakpointEvent",
"GDB breakpoint stop event object",
stop_event_object_type);
GDB_PY_DEFINE_EVENT_TYPE (continue,
"ContinueEvent",
"GDB continue event object",
thread_event_object_type);
GDB_PY_DEFINE_EVENT_TYPE (exited,
"ExitedEvent",
"GDB exited event object",
event_object_type);
GDB_PY_DEFINE_EVENT_TYPE (new_thread,
"NewThreadEvent",
"GDB new thread event object",
thread_event_object_type);
GDB_PY_DEFINE_EVENT_TYPE (new_inferior,
"NewInferiorEvent",
"GDB new inferior event object",
event_object_type);
GDB_PY_DEFINE_EVENT_TYPE (inferior_deleted,
"InferiorDeletedEvent",
"GDB inferior deleted event object",
event_object_type);
GDB_PY_DEFINE_EVENT_TYPE (inferior_call_pre,
"InferiorCallPreEvent",
"GDB inferior function pre-call event object",
event_object_type);
GDB_PY_DEFINE_EVENT_TYPE (inferior_call_post,
"InferiorCallPostEvent",
"GDB inferior function post-call event object",
event_object_type);
GDB_PY_DEFINE_EVENT_TYPE (register_changed,
"RegisterChangedEvent",
"GDB register change event object",
event_object_type);
GDB_PY_DEFINE_EVENT_TYPE (memory_changed,
"MemoryChangedEvent",
"GDB memory change event object",
event_object_type);
GDB_PY_DEFINE_EVENT_TYPE (new_objfile,
"NewObjFileEvent",
"GDB new object file event object",
event_object_type);
GDB_PY_DEFINE_EVENT_TYPE (clear_objfiles,
"ClearObjFilesEvent",
"GDB clear object files event object",
event_object_type);
GDB_PY_DEFINE_EVENT_TYPE (signal,
"SignalEvent",
"GDB signal event object",
stop_event_object_type);
GDB_PY_DEFINE_EVENT_TYPE (stop,
"StopEvent",
"GDB stop event object",
thread_event_object_type);
GDB_PY_DEFINE_EVENT_TYPE (thread,
"ThreadEvent",
"GDB thread event object",
event_object_type);