From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13962 invoked by alias); 31 Aug 2011 08:44:11 -0000 Received: (qmail 13951 invoked by uid 22791); 31 Aug 2011 08:44:07 -0000 X-SWARE-Spam-Status: No, hits=-2.6 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,TW_XC X-Spam-Check-By: sourceware.org Received: from mail-wy0-f169.google.com (HELO mail-wy0-f169.google.com) (74.125.82.169) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 31 Aug 2011 08:43:51 +0000 Received: by wyi11 with SMTP id 11so370111wyi.0 for ; Wed, 31 Aug 2011 01:43:49 -0700 (PDT) MIME-Version: 1.0 Received: by 10.216.160.79 with SMTP id t57mr163082wek.37.1314780229071; Wed, 31 Aug 2011 01:43:49 -0700 (PDT) Received: by 10.216.22.75 with HTTP; Wed, 31 Aug 2011 01:43:49 -0700 (PDT) In-Reply-To: <83y5yaepu4.fsf@gnu.org> References: <201108301527.22683.pedro@codesourcery.com> <83y5yaepu4.fsf@gnu.org> Date: Wed, 31 Aug 2011 08:44:00 -0000 Message-ID: Subject: Re: [PATCH][TEST-CASE][DOC] Implementation of pipe to pass GDB's command output to the shell. From: Abhijit Halder To: Eli Zaretskii Cc: pedro@codesourcery.com, gdb-patches@sourceware.org, sergiodj@redhat.com, jan.kratochvil@redhat.com, tromey@redhat.com Content-Type: multipart/mixed; boundary=0016e64c1c9882f30e04abc9201d X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2011-08/txt/msg00649.txt.bz2 --0016e64c1c9882f30e04abc9201d Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 2680 On Tue, Aug 30, 2011 at 11:36 PM, Eli Zaretskii wrote: >> Date: Tue, 30 Aug 2011 22:08:22 +0530 >> From: Abhijit Halder >> Cc: Eli Zaretskii , gdb-patches@sourceware.org, sergiodj@r= edhat.com, >> =A0 =A0 =A0 jan.kratochvil@redhat.com, tromey@redhat.com >> >> + =A0 =A0 * gdb.texinfo (pipe command): New node. > > You didn't write a new node, you just added text to the existing node. > So you should state the name of that node in the parentheses. > Sorry, I missed editing this part. >> +If you want to process the output of a @value{GDBN} command using some = shell >> +command or some script, that can be done by using the command @code{pip= e}. =A0You >> +don't even need to get a shell for that. =A0The same could be achieved = by >> +enabling logging and redirecting the output of @value{GDBN} command to = some >> +file and then processing the file content by invoking a shell using >> +@code{shell} command. =A0But this incurs higher costs as the explicit i= nvokation >> +of shell involves execution of its startup scripts and locating the file >> +containing @value{GDBN}'s command output involves directory lookup; eve= n though >> +OS may optimize these processes by its cache mechanism. > > I would drop this part, and leave only the first sentence. =A0We don't > need to justify commands in the manual. > >> +@table @code >> +@item pipe @var{dlim} @var{gdbcmd} @var{dlim} @var{shellcmd} > > You need a "@kindex pipe" here, to index this command as we do with > all other commands. > >> +@var{dlim} is a string of arbitrary length, containing no whitespace an= d no >> +leading '-', acts as a separator between a @value{GDBN} command @var{gd= bcmd} > =A0 =A0 =A0 =A0 =A0 ^^^ > @samp{-} > >> +In the above example @samp{@var{
}} acts as a delimiter. =A0The outp= ut of > > Just @samp{
}, without @var. > >> +@samp{print dd_tbl} is passed to the shell command @samp{sed 's/@}/\n/g= ' | @ >> +grep ".test_dd" | tr ',' '\n'} for processing. > > I would suggest to add that the example does not use `|' as a > delimiter to allow the shell command to use it in its usual shell > semantics. > In the above example one can use `|' as the delimiter. it will not break anything syntactically but will not be readable much, hence I avoided using `|' as delimiter. Do we need to mention that here? > >> +In the given example the output of @value{GDBN} command is huge and not= well >> +formated. =A0The use of shell commands like ``sed'', ``tr'' and ``grep'= ' ease > > Please use @command{sed}, @command{tr}, etc. > > Thanks. > I made the corrections as suggested. Please review this: Thanks, Abhijit Halder --0016e64c1c9882f30e04abc9201d Content-Type: text/x-patch; charset=US-ASCII; name="gdb-pipe-command-doc.patch" Content-Disposition: attachment; filename="gdb-pipe-command-doc.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gs025jqx0 Content-length: 3107 ZGlmZiAtcnVwIHNyYy9nZGIvZG9jL0NoYW5nZUxvZyBkc3QvZ2RiL2RvYy9D aGFuZ2VMb2cKLS0tIHNyYy9nZGIvZG9jL0NoYW5nZUxvZwkyMDExLTA4LTI3 IDIwOjM1OjM4LjQ1OTkzNDAyOSArMDUzMAorKysgZHN0L2dkYi9kb2MvQ2hh bmdlTG9nCTIwMTEtMDgtMzEgMTM6MzM6NTkuMTg4MTE4MDE2ICswNTMwCkBA IC0xLDMgKzEsNyBAQAorMjAxMS0wOC0yOSAgQWJoaWppdCBIYWxkZXIgIDxh Ymhpaml0LmsuaGFsZGVyQGdtYWlsLmNvbT4KKworCSogZ2RiLnRleGluZm8g KFNoZWxsIENvbW1hbmRzKTogQWRkIHBpcGUgY29tbWFuZC4KKwogMjAxMS0w OC0yNSAgQW5kcmV3IE9ha2xleSAgPGFuZHJld0BhZG8uaXMtYS1nZWVrLm5l dD4KIAogCSogZ2RiLnRleGluZm8gKFR5cGVzIEluIFB5dGhvbik6IERvY3Vt ZW50ICdiaXRwb3MnIGZvciBlbnVtcy4KZGlmZiAtcnVwIHNyYy9nZGIvZG9j L2dkYi50ZXhpbmZvIGRzdC9nZGIvZG9jL2dkYi50ZXhpbmZvCi0tLSBzcmMv Z2RiL2RvYy9nZGIudGV4aW5mbwkyMDExLTA4LTI2IDIxOjExOjM5LjkzODM1 NDAwNyArMDUzMAorKysgZHN0L2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxMS0w OC0zMSAxMzo0Mzo0NS44MzYxMTc4ODggKzA1MzAKQEAgLTEzNjcsNiArMTM2 Nyw0OCBAQCBFeGVjdXRlIHRoZSBAY29kZXttYWtlfSBwcm9ncmFtIHdpdGgg dGhlCiBhcmd1bWVudHMuICBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gQHNhbXB7 c2hlbGwgbWFrZSBAdmFye21ha2UtYXJnc319LgogQGVuZCB0YWJsZQogCitJ ZiB5b3Ugd2FudCB0byBwcm9jZXNzIHRoZSBvdXRwdXQgb2YgYSBAdmFsdWV7 R0RCTn0gY29tbWFuZCB1c2luZyBzb21lIHNoZWxsCitjb21tYW5kIG9yIHNv bWUgc2NyaXB0LCB0aGF0IGNhbiBiZSBkb25lIGJ5IHVzaW5nIHRoZSBjb21t YW5kIEBjb2Rle3BpcGV9LgorCitAdGFibGUgQGNvZGUKK0BraW5kZXggcGlw ZQorQGl0ZW0gcGlwZSBAdmFye2RsaW19IEB2YXJ7Z2RiY21kfSBAdmFye2Rs aW19IEB2YXJ7c2hlbGxjbWR9CitAdmFye2RsaW19IGlzIGEgc3RyaW5nIG9m IGFyYml0cmFyeSBsZW5ndGgsIGNvbnRhaW5pbmcgbm8gd2hpdGVzcGFjZSBh bmQgbm8KK2xlYWRpbmcgQHNhbXB7LX0sIGFjdHMgYXMgYSBzZXBhcmF0b3Ig YmV0d2VlbiBhIEB2YWx1ZXtHREJOfSBjb21tYW5kCitAdmFye2dkYmNtZH0g YW5kIGEgc2hlbGwgY29tbWFuZCBAdmFye3NoZWxsY21kfS4gIFRoZSBzaGVs bCBjb21tYW5kIHNob3VsZCBiZQoraW4gY29tcGxpYW5jZSB3aXRoIHRoZSBz eW50YXggb2YgdGhlIGRlZmF1bHQgc2hlbGwuCitAZW5kIHRhYmxlCisKK0Bz bWFsbGV4YW1wbGUKKyhAdmFsdWV7R0RCUH0pIEBie3B0eXBlIGRkX3RibH0K K3R5cGUgPSBzdHJ1Y3QgZGQgQHsKKyAgICBpbnQgZGRfaGFuZGxlOworICAg IGNvbnN0IGNoYXIgKmRkX25hbWU7CisgICAgaW50IGRkX21ham9yOworICAg IGludCBkZF9taW5vcjsKKyAgICB2b2lkICpkZF9jb2RlOworICAgIHZvaWQg KmRkX2RhdGE7CitAfSBbMTAyNF0KKyhAdmFsdWV7R0RCUH0pIEBie3BpcGUg PGJyPiBwcmludCBkZF90YmwgPGJyPiBzZWQgJ3MvQH0vXG4vZycgfCBncmVw IEAKKyJcLnRlc3RfZGQiIHwgdHIgJywnICdcbid9CisKKyAgQHtkZF9oYW5k bGUgPSAxMAorICBkZF9uYW1lID0gMHg4MDQ4NTM4ICIudGVzdF9kZCIKKyAg ZGRfbWFqb3IgPSAxMDAKKyAgZGRfbWlub3IgPSAwCisgIGRkX2NvZGUgPSAw eGNjCisgIGRkX2RhdGEgPSAweDgwCitAZW5kIHNtYWxsZXhhbXBsZQorCitJ biB0aGUgYWJvdmUgZXhhbXBsZSBAc2FtcHs8YnI+fSBhY3RzIGFzIGEgZGVs aW1pdGVyLiAgVGhlIG91dHB1dCBvZgorQHNhbXB7cHJpbnQgZGRfdGJsfSBp cyBwYXNzZWQgdG8gdGhlIHNoZWxsIGNvbW1hbmQgQHNhbXB7c2VkICdzL0B9 L1xuL2cnIHwgQAorZ3JlcCAiLnRlc3RfZGQiIHwgdHIgJywnICdcbid9IGZv ciBwcm9jZXNzaW5nLgorCitJbiB0aGUgZ2l2ZW4gZXhhbXBsZSB0aGUgb3V0 cHV0IG9mIEB2YWx1ZXtHREJOfSBjb21tYW5kIEBzYW1we3ByaW50IGRkX3Ri bH0gaXMKK2h1Z2UgYW5kIG5vdCB3ZWxsIGZvcm1hdGVkLiAgVGhlIHVzZSBv ZiBzaGVsbCBjb21tYW5kcyBsaWtlIEBjb21tYW5ke3NlZH0sCitAY29tbWFu ZHt0cn0gYW5kIEBjb21tYW5ke2dyZXB9IGVhc2UgdGhlIHNlYXJjaGluZyBv ZiBkZXNpcmVkIHBhdHRlcm4gYW5kIGhlbmNlCitlYXNlIGRlYnVnZ2luZy4K KwogQG5vZGUgTG9nZ2luZyBPdXRwdXQKIEBzZWN0aW9uIExvZ2dpbmcgT3V0 cHV0CiBAY2luZGV4IGxvZ2dpbmcgQHZhbHVle0dEQk59IG91dHB1dAo= --0016e64c1c9882f30e04abc9201d--