This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: mi tty commands


On Thu, Jun 02, 2005 at 06:16:44PM -0400, Bob Rossi wrote:
> Index: src/gdb/fork-child.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/fork-child.c,v
> retrieving revision 1.26
> diff -w -u -r1.26 fork-child.c
> --- src/gdb/fork-child.c	12 May 2005 20:21:17 -0000	1.26
> +++ src/gdb/fork-child.c	2 Jun 2005 22:12:31 -0000
> @@ -138,6 +138,7 @@
>    char **save_our_env;
>    int shell = 0;
>    static char **argv;
> +  const char *inferior_io_terminal = get_inferior_io_terminal ();
>  
>    /* If no exec file handed to us, get it from the exec-file command
>       -- with a good, common error message if none is specified.  */
> @@ -261,7 +262,7 @@
>  
>    /* Tell the terminal handling subsystem what tty we plan to run on;
>       it will just record the information for later.  */
> -  new_tty_prefork (inferior_io_terminal);
> +  new_tty_prefork ((char *)inferior_io_terminal);
>  
>    /* It is generally good practice to flush any possible pending stdio
>       output prior to doing a fork, to avoid the possibility of both

Uggh!  That's a nasty cast.  It made me go look at the code behind
this.  inferior_thisrun_terminal can now be const; so can the argument
to new_tty_prefork.  Then you can lose the nasty cast.  The code could
be cleaned up further, but that's for another day.

> +void 
> +set_inferior_io_terminal (char *terminal_name)

This argument can be const too.

> -  c = add_com ("tty", class_run, tty_command,
> -	       _("Set terminal for future runs of program being debugged."));
> +  /* add the filename of the terminal connected to inferior I/O */
> +  add_setshow_string_noescape_cmd ("inferior-tty", class_run,
> +				   &inferior_io_terminal, _("\
> +Set terminal for future runs of program being debugged."), _("\
> +Show terminal for future runs of program being debugged."), _("\
> +Usage: set inferior-tty /dev/pts/1"), NULL, NULL, &setlist, &showlist);
>    set_cmd_completer (c, filename_completer);
> +  add_com_alias ("tty", "set inferior-tty", class_alias, 0);

This seems nice.  I was thinking of replacing "tty" with "set tty"
instead of "set inferior-tty", but I don't have a strong preference one
way or the other.

> @@ -1010,11 +1011,11 @@
>    if (inferior_io_terminal)
>      {
>        if (!in[0])
> -	in = inferior_io_terminal;
> +	in = (char*)inferior_io_terminal;
>        if (!out[0])
> -	out = inferior_io_terminal;
> +	out = (char*)inferior_io_terminal;
>        if (!err[0])
> -	err = inferior_io_terminal;
> +	err = (char*)inferior_io_terminal;
>      }
>  
>    if (in[0])

Can you change the types of in/out/err instead?  Casting away const is
bad mojo.

> @@ -2088,7 +2088,24 @@
>  
>  When you use the @code{tty} command or redirect input in the @code{run}
>  command, only the input @emph{for your program} is affected.  The input
> -for @value{GDBN} still comes from your terminal.
> +for @value{GDBN} still comes from your terminal.  @code{tty} is an alias
> +for @code{set inferior-tty}.
> +
> +@cindex inferior tty
> +@cindex set inferior controlling terminal
> +You can use the @code{show inferior-tty} command to tell @value{GDBN} to
> +display the name of the terminal that will be used for future runs of your
> +program.

If we're going to make "tty" an alias for "set inferior-tty", should we
update the documentation to refer to "set inferior-tty" everywhere,
instead of continuing to suggest that users use "tty"?

> +/* Set the inferior terminal device name. */

Formatting.

> +/* Print the inferior terminal device name */

Ditto.

> +    # Test that the commands,
> +    #   -inferior-tty-set
> +    #   -inferior-tth-show

Typo.


-- 
Daniel Jacobowitz
CodeSourcery, LLC


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