aboutsummaryrefslogtreecommitdiff
path: root/gdb/python
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/python')
-rw-r--r--gdb/python/py-events.h1
-rw-r--r--gdb/python/py-evts.c3
-rw-r--r--gdb/python/python.c5
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"))
{