]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
* Makefile.in (interps.o): Add gdb-events.h as a dependency.
authorKeith Seitz <keiths@redhat.com>
Mon, 24 Jun 2002 23:59:58 +0000 (23:59 +0000)
committerKeith Seitz <keiths@redhat.com>
Mon, 24 Jun 2002 23:59:58 +0000 (23:59 +0000)
        * gdb-events.sh (clear_gdb_event_hooks): New function.
        * gdb-events.c: Regenerate.
        * gdb-events.h: Regenerate.

        * cli-out.h (cli_out_set_stream): New function.
        * cli-out.c (cli_out_set_stream): New function.

        * interps.c: Include gdb-events.h.
        (clear_interpreter_hooks): Also clear out event handlers.
        (gdb_set_interpreter): Clear out any hooks/event handlers that
        may have been installed by old interpreter.

        * cli/cli-interp.c (cli_interpreter_exec): Set the stream for the
        cli's uiout to gdb_stdout, which has probably changed from it's
        initialization. Restore the original stream when we're done executing
        in the interpreter.

gdb/ChangeLog
gdb/Makefile.in
gdb/cli-out.c
gdb/cli-out.h
gdb/gdb-events.c
gdb/gdb-events.h
gdb/gdb-events.sh
gdb/interps.c

index b8be9419760a76cc9b330d40123ff0fa848aa63c..a7b5da2102418d86271957f97eaa62bf22645c46 100644 (file)
@@ -1,3 +1,24 @@
+2002-06-24  Keith Seitz  <keiths@redhat.com>
+
+       * Makefile.in (interps.o): Add gdb-events.h as a dependency.
+
+       * gdb-events.sh (clear_gdb_event_hooks): New function.
+       * gdb-events.c: Regenerate.
+       * gdb-events.h: Regenerate.
+
+       * cli-out.h (cli_out_set_stream): New function.
+       * cli-out.c (cli_out_set_stream): New function.
+
+       * interps.c: Include gdb-events.h.
+       (clear_interpreter_hooks): Also clear out event handlers.
+       (gdb_set_interpreter): Clear out any hooks/event handlers that
+       may have been installed by old interpreter.
+
+       * cli/cli-interp.c (cli_interpreter_exec): Set the stream for the
+       cli's uiout to gdb_stdout, which has probably changed from it's
+       initialization. Restore the original stream when we're done executing
+       in the interpreter.
+
 2002-06-18  Keith Seitz  <keiths@redhat.com>
 
        * breakpoint.c (internal_breakpoint_number): Make static global.
index f854136418bf09d92b62b0ad047ebd5f34e1361d..7aa5b994fd945f94c5e9e49d8ba1bc446a8c82d7 100644 (file)
@@ -2323,8 +2323,8 @@ gdb-events.o: gdb-events.c $(gdb_events_h) $(defs_h) $(gdbcmd_h)
 
 ui-out.o: ui-out.c $(defs_h) $(ui_out_h) $(expression_h) $(language_h)
 cli-out.o: cli-out.c $(defs_h) $(ui_out_h) $(cli_out_h) $(interps_h)
-inters.o: interps.c $(defs_h) $(gdbcmd_h) $(ui_out_h) $(event_loop_h) \
-               $(event_top_h) $(interps_h) $(gdb_h) $(wrapper_h)
+interps.o: interps.c $(defs_h) $(gdbcmd_h) $(ui_out_h) $(event_loop_h) \
+               $(event_top_h) $(interps_h) $(gdb_h) $(wrapper_h) $(gdb_events_h)
 varobj.o: varobj.c $(defs_h) $(frame_h) $(value_h) \
        $(language_h) $(valprint_h) $(varobj_h) $(wrapper_h)
 
index bd079f250bb8eccdbcff469443ee94fd21475b07..e3b45cdd5389a320346d08db65b0d5a240e3ed8e 100644 (file)
@@ -365,6 +365,15 @@ cli_out_new (struct ui_file *stream)
   return ui_out_new (&cli_ui_out_impl, data, flags);
 }
 
+struct ui_file *
+cli_out_set_stream (struct ui_out *uiout, struct ui_file *stream)
+{
+  struct ui_out_data *data = ui_out_data (uiout);
+  struct ui_file *old = data->stream;
+  data->stream = stream;
+  return old;
+}
+
 /* standard gdb initialization hook */
 void
 _initialize_cli_out (void)
index 723b7260cbf6e1517e844eea207969dcfeb4fe98..90fd446bbba4a03df18b3075fd9f3c079b529bf0 100644 (file)
@@ -23,5 +23,6 @@
 #define CLI_OUT_H
 
 extern struct ui_out *cli_out_new (struct ui_file *stream);
-
+extern struct ui_file *cli_out_set_stream (struct ui_out *uiout,
+                                          struct ui_file *stream);
 #endif
index ada30a3ef5abc70e017d48f7397cbc58f6bf1fbe..0912e651190c8d1458101621fe54e3545b5ba606 100644 (file)
@@ -134,6 +134,14 @@ set_gdb_event_hooks (struct gdb_events *vector)
 }
 #endif
 
+#if WITH_GDB_EVENTS
+void
+clear_gdb_event_hooks (void)
+{
+  set_gdb_event_hooks (&null_event_hooks);
+}
+#endif
+
 enum gdb_event
 {
   breakpoint_create,
index 5f7fc6b5a55b2bd56c1fd8cb6954bf6488cfc9ac..67868184b0ffa3149b917dd301337bdf59031bba 100644 (file)
@@ -105,6 +105,9 @@ extern struct gdb_events *set_gdb_event_hooks (struct gdb_events *vector);
 /* Deliver any pending events. */
 extern void gdb_events_deliver (struct gdb_events *vector);
 
+/* Clear event handlers */
+extern void clear_gdb_event_hooks (void);
+
 #if !WITH_GDB_EVENTS
 #define set_gdb_events(x) 0
 #define set_gdb_event_hooks(x) 0
index 9965f05577f5373cc851774c52d81e7ddd0439a9..2872b99c48c85998d13a4bf58b72a443ba4b3591 100755 (executable)
@@ -267,6 +267,9 @@ extern struct gdb_events *set_gdb_event_hooks (struct gdb_events *vector);
 /* Deliver any pending events. */
 extern void gdb_events_deliver (struct gdb_events *vector);
 
+/* Clear event handlers */
+extern void clear_gdb_event_hooks (void);
+
 #if !WITH_GDB_EVENTS
 #define set_gdb_events(x) 0
 #define set_gdb_event_hooks(x) 0
@@ -393,6 +396,18 @@ cat <<EOF
 #endif
 EOF
 
+# Clear hooks function
+echo ""
+cat <<EOF
+#if WITH_GDB_EVENTS
+void
+clear_gdb_event_hooks (void)
+{
+  set_gdb_event_hooks (&null_event_hooks);
+}
+#endif
+EOF
+
 # event type
 echo ""
 cat <<EOF
index 4b9b901f1bcfef076a5749ece025dc57267f48f2..c07f999d1f43d7cfe01f11b1d99327338c60b11d 100644 (file)
@@ -46,6 +46,7 @@
 #include "interps.h"
 #include "completer.h"
 #include "gdb_string.h"
+#include "gdb-events.h"
 
 struct gdb_interpreter
 {
@@ -278,6 +279,9 @@ gdb_set_interpreter (struct gdb_interpreter *interp)
        }
     }
 
+  /* Clear out any installed interpreter hooks/event handlers. */
+  clear_interpreter_hooks ();
+
   if (interp->procs.resume_proc != NULL
       && (!interp->procs.resume_proc (interp->data)))
     {
@@ -460,6 +464,7 @@ clear_interpreter_hooks ()
   error_hook = 0;
   error_begin_hook = 0;
   command_loop_hook = 0;
+  clear_gdb_event_hooks ();
 }
 
 /* This is a lazy init routine, called the first time