This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: RFA: Make cli-out follow gdb_stdout
- From: Daniel Jacobowitz <drow at mvista dot com>
- To: Andrew Cagney <ac131313 at ges dot redhat dot com>
- Cc: gdb-patches at sources dot redhat dot com, insight at sources dot redhat dot com
- Date: Mon, 22 Jul 2002 14:21:49 -0400
- Subject: Re: RFA: Make cli-out follow gdb_stdout
- References: <20020717183012.GA9788@nevyn.them.org> <3D3C4AFF.2090003@ges.redhat.com>
On Mon, Jul 22, 2002 at 02:12:15PM -0400, Andrew Cagney wrote:
> FYI,
>
> This:
>
> > struct ui_out_data
> > {
> >- struct ui_file *stream;
> >+ struct ui_file **stream;
> > int suppress_output;
> > };
>
> and this:
>
> >- uiout = cli_out_new (gdb_stdout);
> >+ uiout = cli_out_new (&gdb_stdout);
>
> worry me.
>
> The intent is to eventually have everything using a parameterized output
> object - if you want to change where output goes, change the parameter.
> Given that, having stuff depend on an indirect global pointer looks to
> be going in the wrong direction.
>
> I'll need to look over the problems that Pierre was trying to solve.
I'm not thrilled with it myself. Let me explain what I'm trying to do,
and let's see if we can come up with a better model.
I have a function which temporarily redirects GDB's output. How does
it do this? Well, the best way seems to be to modify
gdb_std{out,err,log}. But the old value of gdb_stdout is cached in the
cli_out object.
The two minimal solutions were the one above (using a ui_file**) or
hardcoding gdb_stdout (since that's the only thing it's ever used for
at present). They're both a bit of a step backwards. I could provide
methods to query and set the underlying stream of a ui_out object, but
the differences between the different ui_out objects make that a little
awkward. Would that be better?
--
Daniel Jacobowitz Carnegie Mellon University
MontaVista Software Debian GNU/Linux Developer