From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29399 invoked by alias); 5 Aug 2011 07:59:42 -0000 Received: (qmail 29388 invoked by uid 22791); 5 Aug 2011 07:59:40 -0000 X-SWARE-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,TW_BJ X-Spam-Check-By: sourceware.org Received: from mail-ey0-f169.google.com (HELO mail-ey0-f169.google.com) (209.85.215.169) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 05 Aug 2011 07:58:52 +0000 Received: by eye22 with SMTP id 22so1705869eye.0 for ; Fri, 05 Aug 2011 00:58:49 -0700 (PDT) MIME-Version: 1.0 Received: by 10.213.114.66 with SMTP id d2mr595400ebq.102.1312531129587; Fri, 05 Aug 2011 00:58:49 -0700 (PDT) Received: by 10.213.16.210 with HTTP; Fri, 5 Aug 2011 00:58:49 -0700 (PDT) In-Reply-To: <201108041029.37721.pedro@codesourcery.com> References: <201108041029.37721.pedro@codesourcery.com> Date: Fri, 05 Aug 2011 07:59:00 -0000 Message-ID: Subject: Re: [PATCH] An implementation of pipe to make I/O communication between gdb and shell. From: Abhijit Halder To: Pedro Alves Cc: gdb-patches@sourceware.org, Sergio Durigan Junior , Jan Kratochvil , Tom Tromey Content-Type: multipart/mixed; boundary=0015174bdde2bc5a4404a9bd7721 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/msg00092.txt.bz2 --0015174bdde2bc5a4404a9bd7721 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 1165 On Thu, Aug 4, 2011 at 2:59 PM, Pedro Alves wrote: > On Thursday 04 August 2011 08:51:14, Abhijit Halder wrote: >> + =A0fstream =3D gdb_modify_io (gdb_stdio, pstream); >> + =A0execute_command (pipe->gdb_cmd, from_tty); >> + =A0pstream =3D gdb_modify_io (gdb_stdio, fstream); > > Looks like this leaves gdb_stdio in an inconsistent > state if execute_command throws an error. > > Do you really need the new gdb_modify_io function? > Can't ui_out_redirect (and stdio_file_new perhaps) do the job? > Yes you are right. I could not foresee this. >> + =A0 =A0 =A0pipe->handle =3D popen (pipe->shell_cmd, pipe->mode); > > I'm not sure that'll build on all supported hosts. > I think on Windows that may require use of _popen instead. > > "struct pipe_t" sounds like a recipe for system namespace > colision (and _t is reserved for posix, though we > have some precedent for abusing it), and is easily confused > with the ser*.c pipe machinery. =A0Can you find an > alternative name for the struct please? > Perhaps struct pipe_cmd_state. > > -- > Pedro Alves > I have made the suggested corrections. Please review this. Thanks, Abhijit Halder --0015174bdde2bc5a4404a9bd7721 Content-Type: text/x-patch; charset=US-ASCII; name="gdb-pipe-command.patch" Content-Disposition: attachment; filename="gdb-pipe-command.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gqyv20f80 Content-length: 7658 ZGlmZiAtcnVwIHNyYy9nZGIvTWFrZWZpbGUuaW4gZHN0L2dkYi9NYWtlZmls ZS5pbgotLS0gc3JjL2dkYi9NYWtlZmlsZS5pbgkyMDExLTA3LTI3IDIzOjU1 OjI2LjAwMDAwMDAwMCArMDUzMAorKysgZHN0L2dkYi9NYWtlZmlsZS5pbgky MDExLTA3LTI5IDE2OjEyOjMyLjU3ODA0ODc5NyArMDUzMApAQCAtNzEzLDcg KzcxMyw3IEBAIFNGSUxFUyA9IGFkYS1leHAueSBhZGEtbGFuZy5jIGFkYS10 eXBlcHIKIAlvYmpjLWV4cC55IG9iamMtbGFuZy5jIFwKIAlvYmpmaWxlcy5j IG9zYWJpLmMgb2JzZXJ2ZXIuYyBvc2RhdGEuYyBcCiAJb3BlbmNsLWxhbmcu YyBcCi0JcC1leHAueSBwLWxhbmcuYyBwLXR5cGVwcmludC5jIHAtdmFscHJp bnQuYyBwYXJzZS5jIHByaW50Y21kLmMgXAorCXAtZXhwLnkgcC1sYW5nLmMg cC10eXBlcHJpbnQuYyBwLXZhbHByaW50LmMgcGFyc2UuYyBwaXBlLmMgcHJp bnRjbWQuYyBcCiAJcHJvYy1zZXJ2aWNlLmxpc3QgcHJvZ3NwYWNlLmMgXAog CXByb2xvZ3VlLXZhbHVlLmMgcHN5bXRhYi5jIFwKIAlyZWdjYWNoZS5jIHJl Z2dyb3Vwcy5jIHJlbW90ZS5jIHJlbW90ZS1maWxlaW8uYyByZXZlcnNlLmMg XApAQCAtODcwLDcgKzg3MCw3IEBAIENPTU1PTl9PQlMgPSAkKERFUEZJTEVT KSAkKENPTkZJR19PQlMpICQKIAltaS1jb21tb24ubyBcCiAJZXZlbnQtbG9v cC5vIGV2ZW50LXRvcC5vIGluZi1sb29wLm8gY29tcGxldGVyLm8gXAogCWdk YmFyY2gubyBhcmNoLXV0aWxzLm8gZ2RidHlwZXMubyBvc2FiaS5vIGNvcHlp bmcubyBcCi0JbWVtYXR0ci5vIG1lbS1icmVhay5vIHRhcmdldC5vIHBhcnNl Lm8gbGFuZ3VhZ2UubyBidWlsZHN5bS5vIFwKKwltZW1hdHRyLm8gbWVtLWJy ZWFrLm8gdGFyZ2V0Lm8gcGFyc2UubyBwaXBlLm8gbGFuZ3VhZ2UubyBidWls ZHN5bS5vIFwKIAlmaW5kY21kLm8gXAogCXN0ZC1yZWdzLm8gXAogCXNpZ25h bHMubyBcCmRpZmYgLXJ1cCBzcmMvZ2RiL3BpcGUuYyBkc3QvZ2RiL3BpcGUu YwotLS0gc3JjL2dkYi9waXBlLmMJMjAxMS0wNy0yOSAxNToxNToyNi4wNzgw NDg1MTcgKzA1MzAKKysrIGRzdC9nZGIvcGlwZS5jCTIwMTEtMDgtMDUgMTM6 MTA6NTEuNDExMDQ2ODgwICswNTMwCkBAIC0wLDAgKzEsMTYxIEBACisvKiBF dmVyeXRoaW5nIGFib3V0IHBpcGUsIGZvciBHREIuCisKKyAgIENvcHlyaWdo dCAoQykgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKwor ICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0RCLgorCisgICBUaGlzIHByb2dy YW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQorICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAg IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u IDMgb2YgdGhlIExpY2Vuc2UsIG9yCisgICAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAg IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgICBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor CisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlz IHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uICAqLworCisjaW5jbHVkZSAiZGVmcy5oIgorI2luY2x1ZGUg PGN0eXBlLmg+CisjaW5jbHVkZSAiZ2RiX3N0cmluZy5oIgorI2luY2x1ZGUg InVpLWZpbGUuaCIKKyNpbmNsdWRlICJ1aS1vdXQuaCIKKyNpbmNsdWRlICJj bGkvY2xpLXV0aWxzLmgiCisjaW5jbHVkZSAiZ2RiY21kLmgiCisKKy8qIExp c3Qgb2YgY2hhcmFjdGVycyB0aGF0IGNhbiBiZSB1c2VkIGFzIGRlbGltaXRl ciB0byBzZXBhcmF0ZSBvdXQKKyAgIGdkYi1jb21tYW5kIGFuZCBzaGVsbCBj b21tYW5kLiAgKi8KKyNkZWZpbmUgUElQRV9ERUxJTUlURVIgInwvXFwnXCJg I0AhJCU8Xj4iCisKKy8qIFRoZSBtb2RlIG9mIHN0cmVhbSBvcGVyYXRpb24u ICAqLwordHlwZWRlZiBjaGFyICppb3N0cmVhbV9tb2RlX3Q7CisKKy8qIEF0 IHByZXNlbnQgd2Ugc3VwcG9ydCBvbmx5IHdyaXRlIG1vZGUgb2Ygb3BlcmF0 aW9ucyB0byB0aGUgcGlwZSwgaS5lLiwKKyAgIGdkYi1jb21tYW5kIGNhbiBv bmx5IHdyaXRlIHRvIHRoZSBwaXBlIHdob3NlIG90aGVyIHRlcm1pbmFsIGlz IG93bmVkIGJ5IHRoZQorICAgc2hlbGwuIEluIGZ1dHVyZSB3ZSBtYXkgc3Rh cnQgc3VwcG9ydGluZyByZWFkIG1vZGUgb2Ygb3BlcmF0aW9ucyBhcyB3ZWxs LgorICAgQnV0IGF0IHByZXNlbnQgdGhlcmUgaXMgbm8gbmVlZCBmb3IgdGhh dC4gICovCisjZGVmaW5lIFdSX1RFWFQgInciCisKK3N0cnVjdCBwaXBlX29i amVjdAoreworICAvKiBUaGUgc2hlbGwtY29tbWFuZC4gICovCisgIGNoYXIg KnNoZWxsX2NtZDsKKworICAvKiBUaGUgZ2RiLWNvbW1hbmQuICAqLworICBj aGFyICpnZGJfY21kOworCisgIC8qIFRoZSBkZWxpbWl0ZXIgdG8gc2VwYXJh dGUgb3V0IGdkYi1jb21tYW5kIGFuZCBzaGVsbC1jb21tYW5kLiAgKi8KKyAg Y2hhciBkbGltOworCisgIC8qIFRoZSBzdXBwb3J0ZWQgbW9kZSBvZiBzdHJl YW0gb3BlcmF0aW9ucyBvbiBnZGItZW5kIHBpcGUuICAqLworICBpb3N0cmVh bV9tb2RlX3QgbW9kZTsKKworICAvKiBUaGUgZ2RiLWVuZCBzdHJlYW0gcG9p bnRlciB0byB0aGUgcGlwZS4gICovCisgIEZJTEUgKmhhbmRsZTsKK307CisK Ky8qIFByb3RvdHlwZSBvZiBsb2NhbCBmdW5jdGlvbnMuICAqLworCitzdGF0 aWMgc3RydWN0IHBpcGVfb2JqZWN0ICpjb25zdHJ1Y3RfcGlwZSAoY2hhciAq KTsKKworc3RhdGljIHZvaWQgZXhlY3V0ZV9jb21tYW5kX3RvX3BpcGUgKHN0 cnVjdCBwaXBlX29iamVjdCAqLCBpbnQpOworCitzdGF0aWMgdm9pZCBkZXN0 cnVjdF9waXBlIChzdHJ1Y3QgcGlwZV9vYmplY3QgKik7CisKK3N0YXRpYyB2 b2lkIHBpcGVfY29tbWFuZCAoY2hhciAqLCBpbnQpOworCitzdGF0aWMgc3Ry dWN0IHBpcGVfb2JqZWN0ICoKK2NvbnN0cnVjdF9waXBlIChjaGFyICpwKQor eworICBzdHJ1Y3QgcGlwZV9vYmplY3QgKnBpcGUgPSBOVUxMOworICBzdHJ1 Y3QgY2xlYW51cCAqb2xkX2NoYWluOworCisgIGlmIChwICE9IE5VTEwgJiYg KnAgIT0gJ1wwJykKKyAgICB7CisgICAgICBwaXBlID0geG1hbGxvYyAoc2l6 ZW9mIChzdHJ1Y3QgcGlwZV9vYmplY3QpKTsKKyAgICAgIG9sZF9jaGFpbiA9 IG1ha2VfY2xlYW51cCAoeGZyZWUsIHBpcGUpOworICAgICAgcGlwZS0+bW9k ZSA9IFdSX1RFWFQ7CisKKyAgICAgIHAgPSBza2lwX3NwYWNlcyAocCk7Cisg ICAgICBwaXBlLT5kbGltID0gKnArKzsKKyAgICAgIHAgPSBza2lwX3NwYWNl cyAocCk7CisgICAgICBwaXBlLT5nZGJfY21kID0gcDsKKworICAgICAgLyog VmFsaWRhdGUgdGhlIGRlbGltaXRlciBmcm9tIGEgcHJlLWRlZmluZWQgd2hp dGVsaXN0IGNoYXJhY3RlcnMuIFRoaXMKKwkgd2lsbCBlbmZvcmNlIG5vdCB0 byB1c2Ugc3BlY2lhbCAoZS5nLiBhbHBoYS1udW1lcmljKSBjaGFyYWN0ZXJz LiAgKi8KKyAgICAgIC8qIE5PVEU6IElmIERMSU0gYmVjb21lIG51bGwsIFAg c3RhcnRzIHBvaW50aW5nIHRvIGEgYmFkIG1lbW9yeQorCSBsb2NhdGlvbiwg aGVuY2UgYmVmb3JlIGRvaW5nIGZ1cnRoZXIgcHJvY2Vzc2luZyBvZiBQIHdl IHNob3VsZCBjaGVjaworCSBETElNLiAgKi8KKyAgICAgIGlmIChwaXBlLT5k bGltID09ICdcMCcKKwkgIHx8IHN0cmNociAoUElQRV9ERUxJTUlURVIsIHBp cGUtPmRsaW0pID09IE5VTEwpCisJZXJyb3IgKF8oIkludmFsaWQgZGVsaW1p dGVyICclYyciKSwgcGlwZS0+ZGxpbSk7CisKKyAgICAgIGlmICgocCA9IHN0 cmNociAocCwgcGlwZS0+ZGxpbSkpID09IE5VTEwpCisJZXJyb3IgKF8oIkZv dW5kIG5vIHNoZWxsIGNvbW1hbmQiKSk7CisKKyAgICAgICpwKysgPSAnXDAn OworICAgICAgcGlwZS0+c2hlbGxfY21kID0gcDsKKworICAgICAgcGlwZS0+ aGFuZGxlID0gcG9wZW4gKHBpcGUtPnNoZWxsX2NtZCwgcGlwZS0+bW9kZSk7 CisKKyAgICAgIGlmICghcGlwZS0+aGFuZGxlKQorCWVycm9yIChfKCJGYWls ZWQgdG8gY3JlYXRlIHBpcGUuXG4lcyIpLCBzdHJlcnJvciAoZXJybm8pKTsK KworICAgICAgZGlzY2FyZF9jbGVhbnVwcyAob2xkX2NoYWluKTsKKyAgICB9 CisKKyAgcmV0dXJuIHBpcGU7Cit9CisKK3N0YXRpYyB2b2lkCitleGVjdXRl X2NvbW1hbmRfdG9fcGlwZSAoc3RydWN0IHBpcGVfb2JqZWN0ICpwaXBlLCBp bnQgZnJvbV90dHkpCit7CisgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVwOwor ICBzdHJ1Y3QgdWlfZmlsZSAqZnA7CisKKyAgY2xlYW51cCA9IHNldF9iYXRj aF9mbGFnX2FuZF9tYWtlX2NsZWFudXBfcmVzdG9yZV9wYWdlX2luZm8gKCk7 CisgIGZwID0gc3RkaW9fZmlsZW9wZW4gKHBpcGUtPmhhbmRsZSk7CisgIG1h a2VfY2xlYW51cF91aV9maWxlX2RlbGV0ZSAoZnApOworICBtYWtlX2NsZWFu dXBfcmVzdG9yZV91aV9maWxlICgmZ2RiX3N0ZG91dCk7CisKKyAgaWYgKHVp X291dF9yZWRpcmVjdCAodWlvdXQsIGZwKSA8IDApCisgICAgd2FybmluZyAo XygiQ3VycmVudCBvdXRwdXQgcHJvdG9jb2wgZG9lcyBub3Qgc3VwcG9ydCBy ZWRpcmVjdGlvbiIpKTsKKyAgZWxzZSAKKyAgICBtYWtlX2NsZWFudXBfdWlf b3V0X3JlZGlyZWN0X3BvcCAodWlvdXQpOworCisgIGdkYl9zdGRvdXQgPSBm cDsKKyAgZXhlY3V0ZV9jb21tYW5kIChwaXBlLT5nZGJfY21kLCBmcm9tX3R0 eSk7CisgIGRvX2NsZWFudXBzIChjbGVhbnVwKTsKK30KKworc3RhdGljIHZv aWQKK2Rlc3RydWN0X3BpcGUgKHN0cnVjdCBwaXBlX29iamVjdCAqcGlwZSkK K3sKKyAgcGNsb3NlIChwaXBlLT5oYW5kbGUpOworICB4ZnJlZSAocGlwZSk7 Cit9CisKK3N0YXRpYyB2b2lkCitwaXBlX2NvbW1hbmQgKGNoYXIgKmFyZywg aW50IGZyb21fdHR5KQoreworICBzdHJ1Y3QgcGlwZV9vYmplY3QgKnBpcGU7 CisKKyAgcGlwZSA9IGNvbnN0cnVjdF9waXBlIChhcmcpOworICBpZiAocGlw ZSAhPSBOVUxMKQorICAgIHsKKyAgICAgIGV4ZWN1dGVfY29tbWFuZF90b19w aXBlIChwaXBlLCBmcm9tX3R0eSk7CisgICAgICBkZXN0cnVjdF9waXBlIChw aXBlKTsKKyAgICB9Cit9CisKK3ZvaWQKK19pbml0aWFsaXplX3BpcGUgKHZv aWQpCit7CisgIGFkZF9jbWQgKCJwaXBlIiwgbm9fY2xhc3MsIHBpcGVfY29t bWFuZCwgXygiXAorQ3JlYXRlIHBpcGUgdG8gcGFzcyBnZGItY29tbWFuZCBv dXRwdXQgdG8gdGhlIHNoZWxsIGZvciBwcm9jZXNzaW5nLlxuXAorQXJndW1l bnRzIGFyZSBhIGRlbGltaXRlciBjaGFyYWN0ZXIsIGZvbGxvd2VkIGJ5IGEg Z2RiLWNvbW1hbmQsIFwKK2ZvbGxvd2VkIGJ5IGEgc2hlbGwtY29tbWFuZC4i KSwKKwkgICAmY21kbGlzdCk7Cit9Cg== --0015174bdde2bc5a4404a9bd7721 Content-Type: application/octet-stream; name=ChangeLog Content-Disposition: attachment; filename=ChangeLog Content-Transfer-Encoding: base64 X-Attachment-Id: f_gqyv2fog1 Content-length: 301 MjAxMS0wNy0yOSBBYmhpaml0IEhhbGRlciA8YWJoaWppdC5rLmhhbGRlckBz eW1hbnRlYy5jb20+CgoJSW1wbGVtZW50YXRpb24gb2YgcGlwZSB0byBtYWtl IEkvTyBjb21tdW5pY2F0aW9uIAoJYmV0d2VlbiBnZGIgYW5kIHNoZWxsLgoK CSogcGlwZS5jOiBOZXcgZmlsZS4KCSogTWFrZWZpbGUuaW4gKFNGSUxFUyk6 IEFkZCBwaXBlLmMuCgkoQ09NTU9OX09CUyk6IEFkZCBwaXBlLm8uIAo= --0015174bdde2bc5a4404a9bd7721--