This is the mail archive of the gdb-patches@sourceware.org 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: [PATCH v3 05/34] Make the interpreters be per UI


On 16-05-06 08:34 AM, Pedro Alves wrote:
> Make each UI have its own interpreter list, top level interpreter,
> current interpreter, etc.  The "interpreter_async" global is not
> really specific to an struct interp (it crosses interpreter-exec ...),
> so I moved it to "struct ui" directly, while the other globals were
> left hidden in interps.c, opaque to the rest of GDB.
> 
> gdb/ChangeLog:
> yyyy-mm-dd  Pedro Alves  <palves@redhat.com>
> 
> 	* breakpoint.c (bpstat_do_actions_1): Access the current UI's
> 	async field instead of the interpreter_async global.
> 	* cli/cli-script.c (execute_user_command, while_command)
> 	(if_command, script_from_file): Likewise.
> 	* compile/compile.c: Include top.h instead of interps.h.
> 	(compile_file_command, compile_code_command)
> 	(compile_print_command): Access the current UI's async field
> 	instead of the interpreter_async global.
> 	* guile/guile.c: Include top.h instead of interps.h.
> 	(guile_repl_command, guile_command, gdbscm_execute_gdb_command):
> 	Access the current UI's async field instead of the
> 	interpreter_async global.
> 	* guile/scm-ports.c: Include top.h instead of interps.h.
> 	(ioscm_with_output_to_port_worker): Access the current UI's async
> 	field instead of the interpreter_async global.
> 	* inf-loop.c (inferior_event_handler): Likewise.
> 	* infcall.c (run_inferior_call): Likewise.
> 	* infrun.c (reinstall_readline_callback_handler_cleanup)
> 	(fetch_inferior_event): Likewise.
> 	* interps.c (interpreter_async): Delete.
> 	(struct ui_interp_info): New.
> 	(get_current_interp_info): New function.
> 	(interp_list, current_interpreter, top_level_interpreter_ptr):
> 	Delete.
> 	(interp_add, interp_set, interp_lookup, interp_ui_out)
> 	(current_interp_set_logging, interp_set_temp)
> 	(current_interp_named_p): Adjust to per-UI interpreters.
> 	(command_interpreter): Delete.
> 	(command_interp, current_interp_command_loop, interp_quiet_p)
> 	(interp_exec, interpreter_exec_cmd, interpreter_completer)
> 	(top_level_interpretertop_level_interpreter)

Two pastes here.

> diff --git a/gdb/interps.c b/gdb/interps.c
> index b188d08..7f57132 100644
> --- a/gdb/interps.c
> +++ b/gdb/interps.c
> @@ -39,11 +39,31 @@
>  #include "top.h"		/* For command_loop.  */
>  #include "continuations.h"
>  
> -/* True if the current interpreter in is async mode.  See interps.h
> -   for more details.  This starts out disabled, until all the explicit
> -   command line arguments (e.g., `gdb -ex "start" -ex "next"') are
> -   processed.  */
> -int interpreter_async = 0;
> +/* Each UI has its own independent set of interpreters.  */
> +
> +struct ui_interp_info
> +{
> +  /* Each top level has its own independent set of interpreters.  */
> +  struct interp *interp_list;
> +  struct interp *current_interpreter;
> +  struct interp *top_level_interpreter_ptr;

Could this be renamed top_level_interpreter?  I guess it was named _ptr to avoid clash in the global namespace.


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