diff options
Diffstat (limited to 'gdb/python')
-rw-r--r-- | gdb/python/py-events.h | 1 | ||||
-rw-r--r-- | gdb/python/py-evts.c | 3 | ||||
-rw-r--r-- | gdb/python/python.c | 5 |
3 files changed, 9 insertions, 0 deletions
diff --git a/gdb/python/py-events.h b/gdb/python/py-events.h index 98eb609..348dabc 100644 --- a/gdb/python/py-events.h +++ b/gdb/python/py-events.h @@ -53,6 +53,7 @@ typedef struct eventregistry_object *breakpoint_created; eventregistry_object *breakpoint_deleted; eventregistry_object *breakpoint_modified; + eventregistry_object *before_prompt; PyObject *module; diff --git a/gdb/python/py-evts.c b/gdb/python/py-evts.c index dc7117f..4766bd6 100644 --- a/gdb/python/py-evts.c +++ b/gdb/python/py-evts.c @@ -100,6 +100,9 @@ gdbpy_initialize_py_events (void) "breakpoint_modified") < 0) return -1; + if (add_new_registry (&gdb_py_events.before_prompt, "before_prompt") < 0) + return -1; + if (gdb_pymodule_addobject (gdb_module, "events", (PyObject *) gdb_py_events.module) < 0) diff --git a/gdb/python/python.c b/gdb/python/python.c index f878f9a..73fb3d0 100644 --- a/gdb/python/python.c +++ b/gdb/python/python.c @@ -100,6 +100,7 @@ const struct extension_language_defn extension_language_python = #include "interps.h" #include "event-top.h" #include "py-ref.h" +#include "py-event.h" /* True if Python has been successfully initialized, false otherwise. */ @@ -969,6 +970,10 @@ gdbpy_before_prompt_hook (const struct extension_language_defn *extlang, gdbpy_enter enter_py (get_current_arch (), current_language); + if (!evregpy_no_listeners_p (gdb_py_events.before_prompt) + && evpy_emit_event (NULL, gdb_py_events.before_prompt) < 0) + return EXT_LANG_RC_ERROR; + if (gdb_python_module && PyObject_HasAttrString (gdb_python_module, "prompt_hook")) { |