From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 805 invoked by alias); 6 Aug 2011 09:58:59 -0000 Received: (qmail 797 invoked by uid 22791); 6 Aug 2011 09:58:57 -0000 X-SWARE-Spam-Status: No, hits=-2.3 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,TW_BJ,TW_RG,TW_TD X-Spam-Check-By: sourceware.org Received: from mail-ew0-f41.google.com (HELO mail-ew0-f41.google.com) (209.85.215.41) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sat, 06 Aug 2011 09:58:43 +0000 Received: by ewy9 with SMTP id 9so2032091ewy.0 for ; Sat, 06 Aug 2011 02:58:41 -0700 (PDT) MIME-Version: 1.0 Received: by 10.213.114.66 with SMTP id d2mr952663ebq.102.1312624721382; Sat, 06 Aug 2011 02:58:41 -0700 (PDT) Received: by 10.213.4.5 with HTTP; Sat, 6 Aug 2011 02:58:41 -0700 (PDT) In-Reply-To: References: <201108041029.37721.pedro@codesourcery.com> <83pqkjx578.fsf@gnu.org> Date: Sat, 06 Aug 2011 09:58:00 -0000 Message-ID: Subject: Re: [PATCH] An implementation of pipe to make I/O communication between gdb and shell. From: Abhijit Halder To: Eli Zaretskii Cc: tromey@redhat.com, pedro@codesourcery.com, gdb-patches@sourceware.org, sergiodj@redhat.com, jan.kratochvil@redhat.com Content-Type: multipart/mixed; boundary=0015174bdde23dcea004a9d342c9 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/msg00128.txt.bz2 --0015174bdde23dcea004a9d342c9 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 1027 On Sat, Aug 6, 2011 at 2:41 AM, Abhijit Halder wrote: > On Fri, Aug 5, 2011 at 8:42 PM, Eli Zaretskii wrote: >>> Date: Fri, 5 Aug 2011 20:35:40 +0530 >>> From: Abhijit Halder >>> Cc: Pedro Alves , gdb-patches@sourceware.org, = =A0 =A0 =A0 =A0 Sergio Durigan Junior , Jan Kratochvil= >>> >>> Further, pexecute does not provide similar functionality. It just >>> executes a program and returns the status of the program, not >>> provide the text output from the program it executes. >> >> ??? Did you read the documentation (on libiberty/pexecute.txh)? >> pexecute certainly does more than that! > Thanks for the reference. Yes I have found the one I was looking for. >> > I have changed the earlier implementation of using popen, instead now I am using libiberty. I have also incorporated other suggestions during code review. Please review this new patch. Thanks, Abhijit Halder --0015174bdde23dcea004a9d342c9 Content-Type: text/x-patch; charset=US-ASCII; name="gdb-pipe-command-corrected.patch" Content-Disposition: attachment; filename="gdb-pipe-command-corrected.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gr0eqc680 Content-length: 8423 ZGlmZiAtcnVwIHNyYy9nZGIvTWFrZWZpbGUuaW4gZHN0L2dkYi9NYWtlZmls ZS5pbgotLS0gc3JjL2dkYi9NYWtlZmlsZS5pbgkyMDExLTA3LTI3IDIzOjU1 OjI2LjAwMDAwMDAwMCArMDUzMAorKysgZHN0L2dkYi9NYWtlZmlsZS5pbgky MDExLTA3LTI5IDE2OjEyOjMyLjU3ODA0ODc5NyArMDUzMApAQCAtNzEzLDcg KzcxMyw3IEBAIFNGSUxFUyA9IGFkYS1leHAueSBhZGEtbGFuZy5jIGFkYS10 eXBlcHIKIAlvYmpjLWV4cC55IG9iamMtbGFuZy5jIFwKIAlvYmpmaWxlcy5j IG9zYWJpLmMgb2JzZXJ2ZXIuYyBvc2RhdGEuYyBcCiAJb3BlbmNsLWxhbmcu YyBcCi0JcC1leHAueSBwLWxhbmcuYyBwLXR5cGVwcmludC5jIHAtdmFscHJp bnQuYyBwYXJzZS5jIHByaW50Y21kLmMgXAorCXAtZXhwLnkgcC1sYW5nLmMg cC10eXBlcHJpbnQuYyBwLXZhbHByaW50LmMgcGFyc2UuYyBwaXBlLmMgcHJp bnRjbWQuYyBcCiAJcHJvYy1zZXJ2aWNlLmxpc3QgcHJvZ3NwYWNlLmMgXAog CXByb2xvZ3VlLXZhbHVlLmMgcHN5bXRhYi5jIFwKIAlyZWdjYWNoZS5jIHJl Z2dyb3Vwcy5jIHJlbW90ZS5jIHJlbW90ZS1maWxlaW8uYyByZXZlcnNlLmMg XApAQCAtODcwLDcgKzg3MCw3IEBAIENPTU1PTl9PQlMgPSAkKERFUEZJTEVT KSAkKENPTkZJR19PQlMpICQKIAltaS1jb21tb24ubyBcCiAJZXZlbnQtbG9v cC5vIGV2ZW50LXRvcC5vIGluZi1sb29wLm8gY29tcGxldGVyLm8gXAogCWdk YmFyY2gubyBhcmNoLXV0aWxzLm8gZ2RidHlwZXMubyBvc2FiaS5vIGNvcHlp bmcubyBcCi0JbWVtYXR0ci5vIG1lbS1icmVhay5vIHRhcmdldC5vIHBhcnNl Lm8gbGFuZ3VhZ2UubyBidWlsZHN5bS5vIFwKKwltZW1hdHRyLm8gbWVtLWJy ZWFrLm8gdGFyZ2V0Lm8gcGFyc2UubyBwaXBlLm8gbGFuZ3VhZ2UubyBidWls ZHN5bS5vIFwKIAlmaW5kY21kLm8gXAogCXN0ZC1yZWdzLm8gXAogCXNpZ25h bHMubyBcCmRpZmYgLXJ1cCBzcmMvZ2RiL3BpcGUuYyBkc3QvZ2RiL3BpcGUu YwotLS0gc3JjL2dkYi9waXBlLmMJMjAxMS0wNy0yOSAxNToxNToyNi4wNzgw NDg1MTcgKzA1MzAKKysrIGRzdC9nZGIvcGlwZS5jCTIwMTEtMDgtMDYgMTU6 MDU6MDIuODE2MzQ2NDM1ICswNTMwCkBAIC0wLDAgKzEsMjA3IEBACisvKiBF dmVyeXRoaW5nIGFib3V0IHBpcGUsIGZvciBHREIuCisKKyAgIENvcHlyaWdo dCAoQykgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKwor ICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0RCLgorCisgICBUaGlzIHByb2dy YW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQorICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAg IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u IDMgb2YgdGhlIExpY2Vuc2UsIG9yCisgICAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAg IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgICBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor CisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlz IHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uICAqLworCisjaW5jbHVkZSAiZGVmcy5oIgorI2luY2x1ZGUg PGN0eXBlLmg+CisjaW5jbHVkZSAiZ2RiX3N0cmluZy5oIgorI2luY2x1ZGUg InVpLWZpbGUuaCIKKyNpbmNsdWRlICJ1aS1vdXQuaCIKKyNpbmNsdWRlICJj bGkvY2xpLXV0aWxzLmgiCisjaW5jbHVkZSAiZ2RiY21kLmgiCisjaW5jbHVk ZSAibGliaWJlcnR5LmgiCisKKy8qIFN0cnVjdHVyZSB0byBlbmNhcHN1bGF0 ZSBhbGwgZW50aXRpZXMgYXNzb2NpYXRlZCB3aXRoIHBpcGUuICAqLworCitz dHJ1Y3QgcGlwZV9vYmoKK3sKKyAgLyogVGhlIGRlbGltaXRlciB0byBzZXBh cmF0ZSBvdXQgZ2RiLWNvbW1hbmQgYW5kIHNoZWxsLWNvbW1hbmQuIFRoaXMg Y2FuIGJlCisgICAgIGFueSBhcmJpdHJhcnkgc3RyaW5nIHdpdGhvdXQgY29u dGFpbmluZyBhbnkgd2hpdGVzcGFjZS4gICovCisgIGNoYXIgKmRsaW07CisK KyAgLyogVGhlIGdkYi1jb21tYW5kLiAgKi8KKyAgY2hhciAqZ2RiX2NtZDsK KworICAvKiBUaGUgc2hlbGwtY29tbWFuZC4gICovCisgIGNoYXIgKnNoZWxs X2NtZDsKKworICAvKiBUaGUgZ2RiLXNpZGUgc3RyZWFtIHBvaW50ZXIgdG8g dGhlIHBpcGUuICAqLworICBGSUxFICpoYW5kbGU7CisKKyAgLyogVGhlIHBl eCBvYmplY3QgdXNlIHRvIGNyZWF0ZSBwaXBlbGluZSBiZXR3ZWVuIGdkYiBh bmQgc2hlbGwuICAqLworICBzdHJ1Y3QgcGV4X29iaiAqcGV4OworfTsKKwor LyogQ29uc3RydWN0IGEgcGlwZSBvYmplY3QgYnkgcGFyc2luZyBhcmd1bWVu dCB0byB0aGUgcGlwZSBjb21tYW5kLiAgKi8KKworc3RhdGljIHN0cnVjdCBw aXBlX29iaiAqCitjb25zdHJ1Y3RfcGlwZSAoY2hhciAqcCkKK3sKKyAgY2hh ciAqc2VwYXJhdG9yOworICBzdHJ1Y3QgcGlwZV9vYmogKnBpcGUgPSBOVUxM OworICBzdHJ1Y3QgY2xlYW51cCAqY2xlYW51cDsKKworICBpZiAocCA9PSBO VUxMKQorICAgIGVycm9yIChfKCJObyBhcmd1bWVudCBpcyBzcGVjaWZpZWQi KSk7CisKKyAgcGlwZSA9IFhDTkVXIChzdHJ1Y3QgcGlwZV9vYmopOworICBj bGVhbnVwID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgcGlwZSk7CisKKyAgcGlw ZS0+ZGxpbSA9IHA7CisKKyAgcCA9IHNraXBfdG9fc3BhY2UgKHApOworICBp ZiAoKnAgIT0gJ1wwJykgKnArKyA9ICdcMCc7CisKKyAgcCA9IHNraXBfc3Bh Y2VzIChwKTsKKyAgcGlwZS0+Z2RiX2NtZCA9IHA7CisKKyAgaWYgKCpwaXBl LT5nZGJfY21kID09ICdcMCcpCisgICAgZXJyb3IgKF8oIk5vIGdkYi1jb21t YW5kIGlzIHNwZWNpZmllZCIpKTsKKworICBmb3IgKHBpcGUtPnNoZWxsX2Nt ZCA9ICIiOworICAgICAgIChzZXBhcmF0b3IgPSBza2lwX3RvX3NwYWNlIChw KSkgIT0gTlVMTDsKKyAgICAgICBwID0gc2tpcF9zcGFjZXMgKHNlcGFyYXRv cikpCisgICAgeworICAgICAgaW50IG1pc21hdGNoID0gbWVtY21wIChwLCBw aXBlLT5kbGltLCAoc2VwYXJhdG9yLXApKTsKKworICAgICAgaWYgKCFtaXNt YXRjaCkKKwl7CisJICAqcCA9ICdcMCc7CisJICBwaXBlLT5zaGVsbF9jbWQg PSBza2lwX3NwYWNlcyAoc2VwYXJhdG9yKTsKKwkgIGJyZWFrOworCX0KKyAg ICB9CisKKyAgaWYgKCpwaXBlLT5zaGVsbF9jbWQgPT0gJ1wwJykKKyAgICBl cnJvciAoXygiTm8gc2hlbGwtY29tbWFuZCBpcyBzcGVjaWZpZWQiKSk7CisK KyAgZGlzY2FyZF9jbGVhbnVwcyAoY2xlYW51cCk7CisKKyAgcmV0dXJuIHBp cGU7Cit9CisKKy8qIFJ1biBleGVjdXRlX2NvbW1hbmQgZm9yIFAgYW5kIEZS T01fVFRZLiBXcml0ZSBvdXRwdXQgdG8gdGhlIHBpcGUsIGRvIG5vdAorICAg ZGlzcGxheSBpdCB0byB0aGUgc2NyZWVuLiAgKi8KKworc3RhdGljIHZvaWQK K2V4ZWN1dGVfY29tbWFuZF90b19waXBlIChzdHJ1Y3QgcGlwZV9vYmogKnBp cGUsIGludCBmcm9tX3R0eSkKK3sKKyAgY2hhciAqKmFyZ3Y7CisgIHN0cnVj dCBjbGVhbnVwICpjbGVhbnVwOworICBzdHJ1Y3QgdWlfZmlsZSAqZnA7CisK KyAgYXJndiA9IGdkYl9idWlsZGFyZ3YgKHBpcGUtPnNoZWxsX2NtZCk7Cisg IGNsZWFudXAgPSBtYWtlX2NsZWFudXBfZnJlZWFyZ3YgKGFyZ3YpOworCisg IHBpcGUtPnBleCA9IHBleF9pbml0IChQRVhfVVNFX1BJUEVTLCBhcmd2WzBd LCBOVUxMKTsKKworICBpZiAocGlwZS0+cGV4ID09IE5VTEwpCisgICAgZG9f Y2xlYW51cHMgKGNsZWFudXApOworCisgIHBpcGUtPmhhbmRsZSA9IHBleF9p bnB1dF9waXBlIChwaXBlLT5wZXgsIDApOworCisgIGlmIChwaXBlLT5oYW5k bGUgPT0gTlVMTCkKKyAgICBlcnJvciAoXygiRmFpbGVkIHRvIGNyZWF0ZSBw aXBlIikpOworCisgICAgeworICAgICAgaW50IHN0YXR1czsKKyAgICAgIGNv bnN0IGNoYXIgKmVycgorICAgICAgID0gcGV4X3J1biAocGlwZS0+cGV4LAor CQkgIFBFWF9TRUFSQ0ggfCBQRVhfTEFTVCB8IFBFWF9TVERFUlJfVE9fU1RE T1VULAorCQkgIGFyZ3ZbMF0sIGFyZ3YsCisJCSAgTlVMTCwgTlVMTCwKKwkJ ICAmc3RhdHVzKTsKKyAgICAgIGlmIChlcnIpCisJZXJyb3IgKF8oIkZhaWxl ZCB0byBleGVjdXRlICVzIiksIGFyZ3ZbMF0pOworCisgICAgICBkb19jbGVh bnVwcyAoY2xlYW51cCk7CisgICAgfQorCisgIGNsZWFudXAgPSBzZXRfYmF0 Y2hfZmxhZ19hbmRfbWFrZV9jbGVhbnVwX3Jlc3RvcmVfcGFnZV9pbmZvICgp OworICBmcCA9IHN0ZGlvX2ZpbGVvcGVuIChwaXBlLT5oYW5kbGUpOworICBt YWtlX2NsZWFudXBfdWlfZmlsZV9kZWxldGUgKGZwKTsKKyAgbWFrZV9jbGVh bnVwX3Jlc3RvcmVfdWlfZmlsZSAoJmdkYl9zdGRvdXQpOworICBtYWtlX2Ns ZWFudXBfcmVzdG9yZV91aV9maWxlICgmZ2RiX3N0ZGVycik7CisgIG1ha2Vf Y2xlYW51cF9yZXN0b3JlX3VpX2ZpbGUgKCZnZGJfc3RkbG9nKTsKKyAgbWFr ZV9jbGVhbnVwX3Jlc3RvcmVfdWlfZmlsZSAoJmdkYl9zdGR0YXJnKTsKKyAg bWFrZV9jbGVhbnVwX3Jlc3RvcmVfdWlfZmlsZSAoJmdkYl9zdGR0YXJnZXJy KTsKKworICBpZiAodWlfb3V0X3JlZGlyZWN0ICh1aW91dCwgZnApIDwgMCkK KyAgICB3YXJuaW5nIChfKCJDdXJyZW50IG91dHB1dCBwcm90b2NvbCBkb2Vz IG5vdCBzdXBwb3J0IHJlZGlyZWN0aW9uIikpOworICBlbHNlIAorICAgIG1h a2VfY2xlYW51cF91aV9vdXRfcmVkaXJlY3RfcG9wICh1aW91dCk7CisKKyAg Z2RiX3N0ZG91dCA9IGZwOworICBnZGJfc3RkZXJyID0gZnA7CisgIGdkYl9z dGRsb2cgPSBmcDsKKyAgZ2RiX3N0ZHRhcmcgPSBmcDsKKyAgZ2RiX3N0ZHRh cmdlcnIgPSBmcDsKKyAgZXhlY3V0ZV9jb21tYW5kIChwaXBlLT5nZGJfY21k LCBmcm9tX3R0eSk7CisgIGRvX2NsZWFudXBzIChjbGVhbnVwKTsKK30KKwor LyogRGVzdHJ1Y3QgcGlwZSBvYmplY3QuICAqLworCitzdGF0aWMgdm9pZAor ZGVzdHJ1Y3RfcGlwZSAodm9pZCAqYXJnKQoreworICBzdHJ1Y3QgcGlwZV9v YmogKnBpcGUgPSAoc3RydWN0IHBpcGVfb2JqICopYXJnOworCisgIGlmIChw aXBlLT5oYW5kbGUpCisgICAgZmNsb3NlIChwaXBlLT5oYW5kbGUpOworCisg IGlmIChwaXBlLT5wZXgpCisgICAgeworICAgICAgaW50IHN0YXR1czsKKwor ICAgICAgcGV4X2dldF9zdGF0dXMgKHBpcGUtPnBleCwgMSwgJnN0YXR1cyk7 CisgICAgICBwZXhfZnJlZSAocGlwZS0+cGV4KTsKKyAgICB9CisKKyAgeGZy ZWUgKHBpcGUpOworfQorCisvKiBFeGVjdXRlIHRoZSBwaXBlIGNvbW1hbmQu ICAqLworCitzdGF0aWMgdm9pZAorcGlwZV9jb21tYW5kIChjaGFyICphcmcs IGludCBmcm9tX3R0eSkKK3sKKyAgc3RydWN0IHBpcGVfb2JqICpwaXBlID0g Y29uc3RydWN0X3BpcGUgKGFyZyk7CisKKyAgaWYgKHBpcGUgIT0gTlVMTCkK KyAgICB7CisgICAgICBzdHJ1Y3QgY2xlYW51cCAqY2xlYW51cCA9IG1ha2Vf Y2xlYW51cCAoZGVzdHJ1Y3RfcGlwZSwgcGlwZSk7CisKKyAgICAgIGV4ZWN1 dGVfY29tbWFuZF90b19waXBlIChwaXBlLCBmcm9tX3R0eSk7CisgICAgICBk b19jbGVhbnVwcyAoY2xlYW51cCk7CisgICAgfQorfQorCisvKiBNb2R1bGUg aW5pdGlhbGl6YXRpb24uICAqLworCit2b2lkCitfaW5pdGlhbGl6ZV9waXBl ICh2b2lkKQoreworICBhZGRfY21kICgicGlwZSIsIG5vX2NsYXNzLCBwaXBl X2NvbW1hbmQsIF8oIlwKK0NyZWF0ZSBwaXBlIHRvIHBhc3MgZ2RiLWNvbW1h bmQgb3V0cHV0IHRvIHRoZSBzaGVsbCBmb3IgcHJvY2Vzc2luZy5cblwKK0Fy Z3VtZW50cyBhcmUgYSBkZWxpbWl0ZXIsIGZvbGxvd2VkIGJ5IGEgZ2RiLWNv bW1hbmQsIHRoZW4gdGhlIHNhbWUgZGVsaW1pdGVyIFwKK2FnYWluIGFuZCBm aW5hbGx5IGEgc2hlbGwtY29tbWFuZC4iKSwKKwkgICAmY21kbGlzdCk7Cit9 Cg== --0015174bdde23dcea004a9d342c9--