[PATCH] Move "tee" building down to interpreter::set_logging_proc

Simon Marchi simon.marchi@polymtl.ca
Thu Feb 2 20:42:00 GMT 2017


On 2017-02-02 13:04, Pedro Alves wrote:
> On 02/02/2017 05:44 PM, Simon Marchi wrote:
> 
>> Yeah sounds good.
>> 
>> Though the pre-existing sentence "...if the output streams are to be
>> tees" is not that clear to me, I'm not sure I would understand if I
>> didn't already know what the function does.  Why does it talk about
>> multiple output streams that have to be tees, isn't there only one 
>> tee?
>> Or is it meant to be a past tense verb, in which case it should be
>> something like "...are to be tee-ed"?  I just find the formulation 
>> awkward.
> 
> I think it's saying that all of "gdb_stdout, gdb_stderr, gdb_stdlog", 
> etc.
> should all end up as tees.  They happens to end up as the same tee
> object, but it's true that they're all tees.
> 
> How about this?
> 
> diff --git i/gdb/cli/cli-interp.h w/gdb/cli/cli-interp.h
> index abae3d6..accecfa 100644
> --- i/gdb/cli/cli-interp.h
> +++ w/gdb/cli/cli-interp.h
> @@ -21,12 +21,14 @@
>  struct interp;
> 
>  /* Make the output ui_file to use when logging is enabled.
> -   CURR_OUTPUT is the current stream where output is currently being
> -   sent to.  LOGFILE is the already-open log file.  LOGGING_REDIRECT
> -   is true if the output is to be the logfile, and false if the output
> -   stream is to be a tee, with the log file as one of the outputs.
> -   Ownership of the log file is transferred to the returned output
> -   file.  The returned output file is an owning pointer.  */
> +   CURR_OUTPUT is the stream where output is currently being sent to
> +   (e.g., gdb_stdout for the CLI, raw output stream for the MI).
> +   LOGFILE is log file already opened by the caller.  LOGGING_REDIRECT
> +   is the value of the "set logging redirect" setting.  If true, the
> +   resulting output is the logfile.  If false, the output stream is a
> +   tee, with the log file as one of the outputs.  Ownership of LOGFILE
> +   is transferred to the returned output file, which is an owning
> +   pointer.  */
>  extern ui_file *make_logging_output (ui_file *curr_output,
>  				     ui_file_up logfile,
>  				     bool logging_redirect);
> diff --git i/gdb/interps.h w/gdb/interps.h
> index 7672393..ef2ceeb 100644
> --- i/gdb/interps.h
> +++ w/gdb/interps.h
> @@ -111,9 +111,11 @@ extern int current_interp_named_p (const char 
> *name);
>     to do any special handling of streams when logging is enabled or
>     disabled.  LOGFILE is the stream for the log file when logging is
>     starting and is NULL when logging is ending.  LOGGING_REDIRECT is
> -   false if the output streams are to be tees, with the log file as
> -   one of the outputs.  */
> -
> +   the value of the "set logging redirect" setting.  If true, the
> +   interpreter should configure the output streams to send output only
> +   to the logfile.  If false, the interpreter should configure the
> +   output streams to send output to both the current output stream
> +   (i.e., the terminal) and the log file.  */
>  extern void current_interp_set_logging (ui_file_up logfile,
>  					bool logging_redirect);

LGTM!



More information about the Gdb-patches mailing list