This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [5.3 PATCH]: Fix TUI breaking gdb interpreters (mi)


Hi!

Daniel Jacobowitz wrote:
Two problems:
 TUI broke the MI interface if TUI is enabled at compile time.  The change
which did this does was on Sept. 10th, 2002.  There's a typo in the
ChangeLog which made it hard to find...

       * tui-hooks.c (tui_event_loop): New function.
       (tui_command_loop): New function to override gdb loop and make sure
       uiout is set according to TUI mode.
       (tui_command_loop): Install the specific TUI command hook.

(the second tui_command_loop should have been tui_init_hook).

You can't just override the command loop that way!  MI does this
conditionally on -i=mi being specified.

This also breaks the bit at the end of gdb/top.c to handle unknown -i=
switches.
Too bad...
For the mainline, the thing to do is probably mimic insight:

- if the tui sees interpreter_p == "tui" then set things up for the tui. That way -i=tui works.

- have the --tui option set interpreter_p to "tui".

- create an executable called tui, linked with tui.c (instead of gdb.c) that sets the interpreter to tui (see insight's insight.c) before calling the wrapped main. That way, the program `tui` will start the tui but `gdb` will still start GDB.

Andrew


I've committed this patch to avoid the TUI initialization when some interpreter
was specified (It does not make sense to enable TUI when there such interpreter).
I also fixed the ChangeLog typo.

gdb -i=mi seems to work after that (at least better than without it).

Stephane

2002-11-21 Stephane Carrez <stcarrez@nerim.fr>

* tui-hooks.c (tui_init_hook): Don't enable the TUI if a specific
interpreter is installed.



Index: tui-hooks.c
===================================================================
RCS file: /cvs/src/src/gdb/tui/tui-hooks.c,v
retrieving revision 1.7.2.1
diff -u -p -r1.7.2.1 tui-hooks.c
--- tui-hooks.c 10 Sep 2002 20:00:55 -0000 1.7.2.1
+++ tui-hooks.c 21 Nov 2002 21:13:02 -0000
@@ -420,6 +420,10 @@ tui_event_loop (void)
static void
tui_init_hook (char *argv0)
{
+ /* Don't enable the TUI if a specific interpreter is installed. */
+ if (interpreter_p)
+ return;
+
/* Install exit handler to leave the screen in a good shape. */
atexit (tui_exit);


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]