Re: [PATCH][TEST-CASE][DOC] Implementation of pipe to pass GDB's command output to the shell.

Abhijit Halder
2011-08-28T08:52:01Z

On Fri, Aug 26, 2011 at 5:48 PM, Eli Zaretskii <eliz@gnu.org> wrote:
>> Date: Fri, 26 Aug 2011 17:13:28 +0530
>> From: Abhijit Halder <abhijit.k.halder@gmail.com>
>> Cc: Eli Zaretskii <eliz@gnu.org>, Sergio Durigan Junior <sergiodj@redhat.com>,
>>       Jan Kratochvil <jan.kratochvil@redhat.com>, Tom Tromey <tromey@redhat.com>,
>>       Pedro Alves <pedro@codesourcery.com>
>>
>> I am creating this new thread as the earlier threads went very long.
>> This patch contains code change, test-cases and documentation as well.
>
> Thanks.
>
>> +@node Output Redirection
>> +@chapter Redirecting @value{GDBN}'s Command Output to the Shell
>
> I'd rather not make this a new chapter.  I think a subsection of the
> Input/Output node is a much better place.
>
Actually I could not find such section. Can someone please direct me
to the appropriate section?

>> +@value{GDBN}'s command output can be redirected to the shell using @code{pipe}
>                                                   ^^^^^^^^^^^^
> "to a shell command", I think.
Yes. I will correct this.

>
>>                                        Even if the environment variable
>> +@code{SHELL} is set, the default shell (@file{/bin/sh} on Unix systems,
>> +@file{COMMAND.COM} on MS-DOS, etc.) is used.
>
> This might be seen by some as a
>
Sorry I am getting this. Please give me some more context.

>>                                           The @code{pipe} command expects
>> +in its argument a delimiter string (without having any whitespace), followed by
>> +a @value{GDBN} command, followed by the same delimiter string and finally a
>> +shell command.  The delimiter should not contain any leading `-'.
>> +
>> +@smallexample
>> +(@value{GDBP}) @b{pipe | thread apply all bt | cat >./analyze_threads.log}
>> +@end smallexample
>
> Please explain which part is the "delimiter" here.  Since you are
> using the "normal" shell pipe character `|', the above explanation
> about the delimiter string will raise a few brows.  A word about why
> you need something beyond the usual `|' would also be nice.
>
Sure.

> In addition, I think we should explain which parts of the command are
> passed to the shell verbatim and which parts are processed by GDB.  If
> the last part ("cat >./analyze_threads.log") is passed to the shell,
> then it must use the shell syntax (e.g., backslashes on MS-DOS/Windows).
>
Sure.

> Finally, can we have a more useful example than just redirecting the
> output to a file?  Such redirection can be achieved without this
> command at all.
>
Sure. I will try to provide some useful application.

> Please also remove the @b markup, it is not used anywhere in the
> examples we have in the manual.
>
Ok, I think when we need to show the command output along with the
command itself, the only the command has to be within @b markup.

>> +* New command "pipe" has been added to make GDB command output available to the
>> +  shell for processing.
>
> "available to shell commands"
>