This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: cli/1046: regression: ^Z (suspend) no longer works
- From: Mark Kettenis <kettenis at chello dot nl>
- To: gdb-gnats at sources dot redhat dot com, gdb-patches at sources dot redhat dot com
- Cc: mec at shout dot net
- Date: Sat, 8 Feb 2003 22:30:42 +0100 (CET)
- Subject: Re: cli/1046: regression: ^Z (suspend) no longer works
Defenitely a problem with this patch:
2003-02-05 Jim Ingham <jingham@apple.com>
Keith Seitz <keiths@redhat.com>
Elena Zannoni <ezannoni@redhat.com>
Andrew Cagney <ac131313@redhat.com>
* Makefile.in (SUBDIR_CLI_OBS): Add "cli-interp.o".
(SUBDIR_CLI_SRCS): Add "cli/cli-interp.c".
(SUBDIR_MI_OBS): Add "mi-interp.o".
(SUBDIR_MI_SRCS): Add "mi/mi-interp.c".
(SFILES): Add "interps.c".
(COMMON_OBS): Add "interps.o".
(interps_h, mi_main_h): Define.
(interps.o, cli-interp.o, mi-interp.o): Add dependencies.
(mi-main.o, main.o, event-top.o): Update dependencies.
* cli/cli-interp.c: New file.
* interps.h, interps.c: New files.
* top.c: (gdb_init): Don't install the default interpreter, handed
by captured_main.
* main.c: Include "interps.h".
(interpreter_p): Note that it should malloc'ed.
(captured_command_loop): Call current_interp_command_loop.
(captured_main): Initialize interpreter_p to INTERP_CONSOLE. Use
xfree and xstrdup when updating interpreter_p. Install the
default interpreter. Add hack to stop mi1's copyright notice
being encoded.
* event-top.h (gdb_setup_readline): Declare.
(gdb_disable_readline): Declare.
* event-top.c: Include "interps.h".
(display_gdb_prompt): Call current_interp_display_prompt_p.
(gdb_setup_readline): Initialize gdb_stdout, gdb_stderr,
gdb_stdlog, and gdb_stdtarg.
(_initialize_event_loop): Don't call gdb_setup_readline.
* cli-out.c (cli_out_set_stream): New function.
* cli-out.h (cli_out_set_stream): Declare.
The SIGTSTP generated by the ^Z cascades through readline and arraives
at event-top.c:handle_stop_sig(). It is marked for dispatch by the
event loop, but it is never really dispatches since we don't run
cli_command_loop anymore. This is because the new interps.c file
clears the command_loop_hook in interps.c:clear_interpreter_hooks().
We should probably call cli_command_loop() instead of command_loop()
in interps.c:current_interp_command_loop(), but I'm not sure. Did we
commit ourselves to using the new event loop yet?
Mark