This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: David Taylor: [RFA] insight gdb_stdlog bug
- To: David Taylor <taylor at cygnus dot com>
- Subject: Re: David Taylor: [RFA] insight gdb_stdlog bug
- From: Fernando Nasser <fnasser at redhat dot com>
- Date: Tue, 02 Jan 2001 14:22:40 -0500
- CC: gdb-patches at sources dot redhat dot com, insight at sources dot redhat dot com
- Organization: Red Hat Canada
- References: <200101021917.OAA01413@texas.cygnus.com>
David Taylor wrote:
>
> Just a ping -- I never saw a response to this.
>
> I believe that I need approvals from:
>
> . ezannoni for the change to main.c
>
Elena is on vacations. I believe your change fall in the "obvious
simple fix"
category though.
> . spolk (backup: fnasser, jingham) for the change to gdbtk-hooks.c
The gdbtk part is approved. Please note that the ChangeLog to use now
is the one at gdb/gdbtk
>
> . some blanket write priv's maintainer for the tui-file.c change (my
> understanding is that Jimmy Guo has left HP and has no interest in
> continuing GDB TUI maintainership -- please correct me if you know
> otherwise).
>
The tui-file.c is still actively used by GDB (there is a cleanup item in
the TODO file to stop using it), so we are maintaining it.
I guess your change here is another simple fix one.
Fernando
> ------- Forwarded Message
>
> To: insight@sources.redhat.com
> cc: gdb-patches@sourceware.cygnus.com
> Subject: [RFA] insight gdb_stdlog bug
> Date: Wed, 20 Dec 2000 17:52:45 -0500
> From: David Taylor <taylor@texas.cygnus.com>
>
> When GDBTK_TO_RESULT is set, insight gobbles all output written to
> gdb_stdlog. But, the stuff written to gdb_stdlog isn't meant to be
> parsed by insight -- it's meant to be read by a person.
>
> While it might be desired -- when GDBTK_TO_RESULT is not set -- that
> gdb_stdlog go the same place as gdb_stdout, it cannot have the same
> pointer value as gdb_stdout or the code won't be able to distinguish
> output meant for gdb_stdout vs output meant for gdb_stdlog when
> GDBTK_TO_RESULT is set.
>
> The following patch fixes that. (The result is that output written to
> gdb_stdlog appears in the insight console window if it is active.)
>
> ChangeLog entries (3 separate ChangeLog files):
>
> * main.c (captured_main): Initialize gdb_stdlog to a copy of
> gdb_stdout rather than to gdb_stdout, so that code can distinguish
> them.
>
> * tui/tui-file.c (tui_file_fputs): Handle gdb_stdlog the same
> as gdb_stdout.
>
> * gdbtk/generic/gdbtk-hooks.c (gdbtk_fputs): Distinguish between
> gdb_stdlog and gdb_stdout.
>
> Index: main.c
> ===================================================================
> RCS file: /cvs/cvsfiles/devo/gdb/main.c,v
> retrieving revision 1.207.12.1
> diff -c -r1.207.12.1 main.c
> *** main.c 2000/11/13 02:10:59 1.207.12.1
> - --- main.c 2000/12/20 22:23:25
> ***************
> *** 203,209 ****
> within its own _initialize function. */
> gdb_stdout = tui_fileopen (stdout);
> gdb_stderr = tui_fileopen (stderr);
> ! gdb_stdlog = gdb_stdout; /* for moment */
> gdb_stdtarg = gdb_stderr; /* for moment */
> #else
> gdb_stdout = stdio_fileopen (stdout);
> - --- 203,209 ----
> within its own _initialize function. */
> gdb_stdout = tui_fileopen (stdout);
> gdb_stderr = tui_fileopen (stderr);
> ! gdb_stdlog = tui_fileopen (stdout); /* for moment */
> gdb_stdtarg = gdb_stderr; /* for moment */
> #else
> gdb_stdout = stdio_fileopen (stdout);
> Index: tui/tui-file.c
> ===================================================================
> RCS file: /cvs/cvsfiles/devo/gdb/tui/tui-file.c,v
> retrieving revision 1.5
> diff -c -r1.5 tui-file.c
> *** tui-file.c 2000/07/30 01:50:07 1.5
> - --- tui-file.c 2000/12/20 22:23:25
> ***************
> *** 181,187 ****
> also tui_file_flush(). */
> if (fputs_unfiltered_hook
> && (file == gdb_stdout
> ! || file == gdb_stderr))
> fputs_unfiltered_hook (linebuffer, file);
> else
> {
> - --- 181,188 ----
> also tui_file_flush(). */
> if (fputs_unfiltered_hook
> && (file == gdb_stdout
> ! || file == gdb_stderr
> ! || file == gdb_stdlog))
> fputs_unfiltered_hook (linebuffer, file);
> else
> {
> Index: gdbtk/generic/gdbtk-hooks.c
> ===================================================================
> RCS file: /cvs/cvsfiles/devo/gdb/gdbtk/generic/gdbtk-hooks.c,v
> retrieving revision 1.7
> diff -c -r1.7 gdbtk-hooks.c
> *** gdbtk-hooks.c 2000/10/23 22:42:01 1.7
> - --- gdbtk-hooks.c 2000/12/20 22:23:29
> ***************
> *** 250,256 ****
>
> if (result_ptr != NULL)
> {
> ! if (result_ptr->flags & GDBTK_TO_RESULT)
> {
> if (result_ptr->flags & GDBTK_MAKES_LIST)
> Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
> - --- 250,258 ----
>
> if (result_ptr != NULL)
> {
> ! if (stream == gdb_stdlog)
> ! gdbtk_two_elem_cmd ("gdbtk_tcl_fputs", (char *) ptr);
> ! else if (result_ptr->flags & GDBTK_TO_RESULT)
> {
> if (result_ptr->flags & GDBTK_MAKES_LIST)
> Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
>
> ------- End of Forwarded Message