Re: [PATCH] An implementation of pipe to make I/O communication between gdb and shell.

Jan Kratochvil
2011-08-02T06:54:41Z

On Fri, 29 Jul 2011 15:35:10 +0200, Abhijit Halder wrote:
On Fri, Jul 29, 2011 at 6:45 PM, Abhijit Halder <abhijit.k.halder@gmail.com> wrote:
> This is the implementation of a new gdb command, named 'pipe', to make
> ease of I/O communication between gdb and shell.
> The syntax of this command is shown as follows:
> (gdb) pipe [option] <dlim> gdb-cmd <dlim> shell-cmd
> List of options go with pipe command:
> Â -r Â  gdb reads output of shell-command from pipe
> Â -w Â gdb passes output of a command to shell to process.

When is useful to feed input of a GDB command from some file/process?
It is IMO useful only for `run' but that will not work this way.

> Â - Â  Â end of gdb option list
> dlim (delimiter) is a single ASCII character from the set below:
> {|/\'"`#@!$%^} (We actually can remove this restriction).

I would prefer first to agree on the proper syntax. I do not find

(gdb) pipe | print 1 | less

to be something a new user will ever try whether it does not work.

The original idea of:

(gdb) print 1 | less

looks fine to me as in normal cases one never uses `|' in the GDB commands.
Still for example for the `echo' GDB command one may use `|' as both the
`echo' argument and also one may want to pass the output to some shell.

If there is pipe `|' GDB could support also redirections '>', '>>', '2>&1',
'&>', '|&' besides '|' etc.

There could be some disable of the option being enabled by default:

(gdb) set shell-metachars off

Thanks,
Jan