This is the mail archive of the insight@sources.redhat.com mailing list for the Insight project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: [RFA] uiout fix for Insight


Martin, the gdbtk part is approved.  

We need someone to approve top.c.  I am copying Elena.

Fernando

"Martin M. Hunt" wrote:
> 
> There is a problem with my recent ui_file patch for Insight.  It creates a
> new gdb_stdout and deletes the old one.  Unfortunately, gdb_init()
> initialized a global "uiout" pointing to the old gdb_stdout. This can
> cause core dumps.
> 
> I'm not sure what the best fix is; I got dizzy tracing through all the ui,
> cli, and mi stuff,  but the following seems to work.  OK to check in?
> 
> 2001-04-10  Martin M. Hunt  <hunt@redhat.com>
> 
>         * top.c (gdb_init): Don't call cli_out_new() to
>         create global uiout if init_ui_hook is set.  uiout will
>         have to be initialized there.
> 
> 2001-04-10  Martin M. Hunt  <hunt@redhat.com>
> 
>         * generic/gdbtk.c (gdbtk_init): Initialize uiout.
> 
> Index: top.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/top.c,v
> retrieving revision 1.31
> diff -u -p -r1.31 top.c
> --- top.c       2001/04/05 15:19:42     1.31
> +++ top.c       2001/04/10 21:50:36
> @@ -704,17 +704,18 @@ gdb_init (char *argv0)
> 
>  #ifdef UI_OUT
>    /* Install the default UI */
> -  uiout = cli_out_new (gdb_stdout);
> -#endif
> -
> -#ifdef UI_OUT
> -  /* All the interpreters should have had a look at things by now.
> -     Initialize the selected interpreter. */
> -  if (interpreter_p && !init_ui_hook)
> +  if (!init_ui_hook)
>      {
> -      fprintf_unfiltered (gdb_stderr, "Interpreter `%s' unrecognized.\n",
> -                         interpreter_p);
> -      exit (1);
> +      uiout = cli_out_new (gdb_stdout);
> +
> +      /* All the interpreters should have had a look at things by now.
> +        Initialize the selected interpreter. */
> +      if (interpreter_p)
> +       {
> +         fprintf_unfiltered (gdb_stderr, "Interpreter `%s' unrecognized.\n",
> +                             interpreter_p);
> +         exit (1);
> +       }
>      }
>  #endif
> 
> @@ -733,8 +734,8 @@ execute_command (char *p, int from_tty)
>    static int warned = 0;
>    char *line;
>    /* FIXME: These should really be in an appropriate header file */
> -extern void serial_log_command (const char *);
> -
> +  extern void serial_log_command (const char *);
> +
>    free_all_values ();
> 
>    /* Force cleanup of any alloca areas if using C alloca instead of
> Index: gdbtk/generic/gdbtk.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/gdbtk/generic/gdbtk.c,v
> retrieving revision 1.10
> diff -u -p -r1.10 gdbtk.c
> --- gdbtk.c     2001/04/05 02:02:14     1.10
> +++ gdbtk.c     2001/04/10 21:50:36
> @@ -386,7 +386,8 @@ gdbtk_init (argv0)
>    gdb_stderr = gdbtk_fileopen ();
>    gdb_stdlog = gdbtk_fileopen ();
>    gdb_stdtarg = gdbtk_fileopen ();
> -
> +  uiout = cli_out_new (gdb_stdout);
> +
>    /* First init tcl and tk. */
>    Tcl_FindExecutable (argv0);
>    gdbtk_interp = Tcl_CreateInterp ();

-- 
Fernando Nasser
Red Hat - Toronto                       E-Mail:  fnasser@redhat.com
2323 Yonge Street, Suite #300
Toronto, Ontario   M4P 2C9


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]