Re: RFA: Make cli-out follow gdb_stdout

Daniel Jacobowitz
2002-07-22T19:41:26Z

On Mon, Jul 22, 2002 at 03:18:53PM -0400, Andrew Cagney wrote:
>
> >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.
>
> So the assertion:
>
> global uiout->stream->ui_file == global gdb_stdout
>
> doesn't hold :-(
>
> >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?
>
> Both of those are still wrong. The global gdb_stdout should be going
> away replaced with some sort of explicitly parameterized i/o object.
> That is why catch_exceptions() takes a ui_out.

Well, that's not helpful in the short term :P

What do you envision by explicitly parametrized i/o object? I really
don't think that's a good idea. It would have to be passed down all
the way to every target function which might want to print some kind of
output. That's a lot of bulk for no visible gain; somewhere down the
road if we supported multiple instantiations of the gdb library, maybe,
but we're so far away from that that this sort of direction seems
futile, until we are at least passing an object cookie everywhere.

--
Daniel Jacobowitz Carnegie Mellon University
MontaVista Software Debian GNU/Linux Developer