Re: RFA: Make cli-out follow gdb_stdout

Andrew Cagney
2002-08-20T15:58:39Z

> This mail is followed by several others in which Andrew and Daniel argue about
> the proposed patch...
>
> Andrew says
> >>So the assertion:
> >>
> >> global uiout->stream->ui_file == global gdb_stdout
> >>
> >>doesn't hold :-(
>
> But I think there is a confusion at that point
> (at least after reading of the thread, I was not really sure that
> it was clear).
> My impression is that the current way the cli_out_new works is not correct
> because if you change gdb_stdout, this change is not reflected in
> the uiout global var. Thus the above assertion
> does not hold in the current old code, but if I understood Daneil's patch correctly
> that patch should have solved that issue.

This is sitting in my in-tray. Yes, the assertion doesn't hold.

> Thus I am very disappointed by the final outcome of this thread...
> I really tought that Daniel's idea was the way to go,
> as uiout is not known in all source files, but gdb_stdout is.
>
> Also, I didn't understand the intent of Andrew concerning this issue.
> Andrew, could you try to reformulate your point of view?

There is always a tradeoff between allowing an immediate ``quick fix''
and seeking a better medium to long term solution. cf:

/* Keep structure return address in this variable. FIXME: This is a
horrid kludge which should not be allowed to continue living. This only
allows a single nested call to a structure-returning function. Come on,
guys! -- gnu@cygnus.com, Aug 92 */

static CORE_ADDR rs6000_struct_return_address;

One immediate thing to fix would be catch_exceptions() which is breaking
its contract -- it at least should keep the uiout and uifile in sync. I
think, if that is fixed, then I think it will be possible to fix the
problems you've encountered.

enjoy,
Andrew