From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 57626 invoked by alias); 17 Oct 2018 16:21:27 -0000 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 Received: (qmail 57598 invoked by uid 89); 17 Oct 2018 16:21:26 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,MIME_BASE64_BLANKS,SPF_PASS autolearn=ham version=3.3.2 spammy=grab X-HELO: sessmg23.ericsson.net Received: from sessmg23.ericsson.net (HELO sessmg23.ericsson.net) (193.180.251.45) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 17 Oct 2018 16:21:24 +0000 DKIM-Signature: v=1; a=rsa-sha256; d=ericsson.com; s=mailgw201801; c=relaxed/simple; q=dns/txt; i=@ericsson.com; t=1539793281; x=1542385281; h=From:Sender:Reply-To:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=qfqCYtWkJHNcSu3p8twykqvC8AKVpTe8SZyf9nApQxo=; b=QcmA8t2JAw2QXb4l5gHY43ytAgy4bpascB46doiFoGHs4taRwXZ/zuROqPmt7U+Y TUmR6QbNKfp48NUqAxHn9rGzQLPRVbknmzKqPQNtVwvhEiKXpg4EVN3WNt05IbIk HZp0WZkZ5OpL9BS6mwyU2xi9fkNQuSO3IVArizzUp4Y=; Received: from ESESSMB503.ericsson.se (Unknown_Domain [153.88.183.121]) by sessmg23.ericsson.net (Symantec Mail Security) with SMTP id 8A.B3.14887.18167CB5; Wed, 17 Oct 2018 18:21:21 +0200 (CEST) Received: from ESESBMR504.ericsson.se (153.88.183.139) by ESESSMB503.ericsson.se (153.88.183.164) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1466.3; Wed, 17 Oct 2018 18:21:21 +0200 Received: from ESESSMB502.ericsson.se (153.88.183.163) by ESESBMR504.ericsson.se (153.88.183.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1466.3; Wed, 17 Oct 2018 18:21:21 +0200 Received: from NAM05-CO1-obe.outbound.protection.outlook.com (153.88.183.157) by ESESSMB502.ericsson.se (153.88.183.163) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1466.3 via Frontend Transport; Wed, 17 Oct 2018 18:21:20 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qfqCYtWkJHNcSu3p8twykqvC8AKVpTe8SZyf9nApQxo=; b=MLaDCg/dZ3htrdCHrL+m8hV6UyFb1CkZWzb/gwIGspWvbqdEGqKABH6FZsAg68NQasFUJkbR+lWQs+iWnTxclDyhMR4GXrLnz4UQ3ybHR7ere1waA9t47WjU2cMaw3scGCODuOy8Ie3kidybGu6T8EE01BERKpDf1mfJt/95ngA= Received: from BYAPR15MB2390.namprd15.prod.outlook.com (52.135.198.30) by BYAPR15MB2392.namprd15.prod.outlook.com (52.135.198.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1228.25; Wed, 17 Oct 2018 16:21:18 +0000 Received: from BYAPR15MB2390.namprd15.prod.outlook.com ([fe80::619e:2dbd:180c:a2fb]) by BYAPR15MB2390.namprd15.prod.outlook.com ([fe80::619e:2dbd:180c:a2fb%5]) with mapi id 15.20.1228.027; Wed, 17 Oct 2018 16:21:18 +0000 From: Simon Marchi To: Pedro Alves , "gdb-patches@sourceware.org" Subject: Re: [PATCH 2/6] invoke_xmethod & array_view Date: Wed, 17 Oct 2018 16:21:00 -0000 Message-ID: <245315f6-dd74-b533-f998-762dbf181a54@ericsson.com> References: <20181015151115.6356-1-palves@redhat.com> <20181015151115.6356-3-palves@redhat.com> In-Reply-To: <20181015151115.6356-3-palves@redhat.com> authentication-results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; received-spf: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 Return-Path: simon.marchi@ericsson.com X-IsSubscribed: yes X-SW-Source: 2018-10/txt/msg00375.txt.bz2 T24gMjAxOC0xMC0xNSAxMToxMSBhLm0uLCBQZWRybyBBbHZlcyB3cm90ZToN Cj4gVGhpcyByZXBsYWNlcyBtb3JlIHBvaW50ZXIrbGVuZ3RoIHdpdGggZ2Ri OjphcnJheV92aWV3LiAgVGhpcyB0aW1lLA0KPiBhcm91bmQgaW52b2tlX3ht ZXRob2QsIGFuZCB0aGVuIHByb3BhZ2F0aW5nIHRoZSBmYWxsb3V0IGFyb3Vu ZCwgd2hpY2gNCj4gaW5ldml0YWJseSBsZWFkcyB0byB0aGUgb3ZlcmxvYWQg cmVzb2x1dGlvbiBjb2RlLg0KPiANCj4gVGhlcmUgYXJlIHNldmVyYWwgcGxh Y2VzIGluIHRoZSBjb2RlIHRoYXQgd2FudCB0byBncmFiIGEgc2xpY2Ugb2Yg YW4NCj4gYXJyYXksIGJ5IGFkdmFudGluZyB0aGUgYXJyYXkgcG9pbnRlciwg YW5kIGRlY3JlYXNpbmcgdGhlIGxlbmd0aA0KDQoiYWR2YW50aW5nIg0KDQo+ IHBvaW50ZXIuICBUaGlzIHBhdGNoIGludHJvZHVjZXMgYSBwYWlyIG9mIG5l dw0KPiBnZGI6OmFycmF5X3ZpZXc6OnNsaWNlKC4uLikgbWV0aG9kcyB0byBt YWtlIHRoYXQgY29udmVuaWVudCBhbmQgY2xlYXIuDQo+IFVuaXQgdGVzdCBp bmNsdWRlZC4NCg0KQ29vbCENCg0KSnVzdCBzb21lIG1pbm9yIGNvbW1lbnRz Lg0KDQpJIG5vdGljZWQgc29tZSBsaW5lcyA+IDgwIGNvbHVtbnM6DQoNCiQg Z2l0IHNob3cgfCBncmVwIF5cKyB8IHRyICdcdCcgJyAgICAgICAgJyB8IGVn cmVwICcuezgxfScNCisgICAgICByZXR1cm4gY2FsbF94bWV0aG9kIChhcmd2 ZWNbMF0sIGdkYjo6bWFrZV9hcnJheV92aWV3IChhcmd2ZWMgKyAxLCBuYXJn cykpOw0KK3ZhbHVlX3VzZXJfZGVmaW5lZF9vcCAoc3RydWN0IHZhbHVlICoq YXJncCwgZ2RiOjphcnJheV92aWV3PHZhbHVlICo+IGFyZ3MsIGNoYXIgKm5h bWUsDQorICAgICAgJiYgY2xhc3NpZnlfb2xvYWRfbWF0Y2ggKG5ld19vbG9h ZF9jaGFtcF9idiwgYXJncy5zaXplICgpLCAwKSA9PSBTVEFOREFSRCkNCg0K DQo+IGRpZmYgLS1naXQgYS9nZGIvY29tbW9uL2FycmF5LXZpZXcuaCBiL2dk Yi9jb21tb24vYXJyYXktdmlldy5oDQo+IGluZGV4IDQ1ZDFhNDcyMGUuLjY3 OWQyZTk1YzcgMTAwNjQ0DQo+IC0tLSBhL2dkYi9jb21tb24vYXJyYXktdmll dy5oDQo+ICsrKyBiL2dkYi9jb21tb24vYXJyYXktdmlldy5oDQo+IEBAIC0x NjksNiArMTY5LDE3IEBAIHB1YmxpYzoNCj4gICAgY29uc3RleHByIHNpemVf dHlwZSBzaXplICgpIGNvbnN0IG5vZXhjZXB0IHsgcmV0dXJuIG1fc2l6ZTsg fQ0KPiAgICBjb25zdGV4cHIgYm9vbCBlbXB0eSAoKSBjb25zdCBub2V4Y2Vw dCB7IHJldHVybiBtX3NpemUgPT0gMDsgfQ0KPiAgDQo+ICsgIC8qIFNsaWNl IGFuIGFycmF5IHZpZXcuICAqLw0KPiArDQo+ICsgIC8qIFJldHVybiBhIG5l dyBhcnJheSB2aWV3IG92ZXIgU0laRSBlbGVtZW50cyBzdGFydGluZyBhdCBT VEFSVC4gICovDQo+ICsgIGNvbnN0ZXhwciBhcnJheV92aWV3PFQ+IHNsaWNl IChzaXplX3R5cGUgc3RhcnQsIHNpemVfdCBzaXplKSBjb25zdCBub2V4Y2Vw dA0KPiArICB7IHJldHVybiB7bV9hcnJheSArIHN0YXJ0LCBzaXplfTsgfQ0K DQpJJ20gc3VyZSB0aGVyZSdzIGEgbG9naWMgZm9yIHVzaW5nIHNpemVfdHlw ZSBmb3Igb25lIHBhcmFtZXRlciBhbmQgc2l6ZV90IGZvciB0aGUgb3RoZXIN CihpbnN0ZWFkIG9mIHNpemVfdHlwZSBmb3IgYm90aCksIGJ1dCB3aGF0IGlz IGl0Pw0KDQo+ICsNCj4gKyAgLyogUmV0dXJuIGEgbmV3IGFycmF5IHZpZXcg b3ZlciBhbGwgdGhlIGVsZW1lbnRzIGFmdGVyIFNUQVJULA0KPiArICAgICBp bmNsdXNpdmUuICAqLw0KPiArICBjb25zdGV4cHIgYXJyYXlfdmlldzxUPiBz bGljZSAoc2l6ZV90eXBlIHN0YXJ0KSBjb25zdCBub2V4Y2VwdA0KPiArICB7 IHJldHVybiB7bV9hcnJheSArIHN0YXJ0LCBzaXplICgpIC0gc3RhcnR9OyB9 DQoNCkl0IHdvdWxkIHBlcmhhcHMgYmUgZ29vZCB0byBoYXZlIHNvbWUgYXNz ZXJ0cyAodGhhdCBhcmUgb25seSB0aGVyZSBpbiBkZXZlbG9wbWVudA0KbW9k ZSwgbWF5YmUpIHRvIG1ha2Ugc3VyZSB3ZSBkb24ndCBkbyBzdHVwaWQgdGhp bmdzLCBsaWtlIHRha2UgYSBzbGljZQ0KcGFzdCB0aGUgZW5kIG9mIHRoZSBh cnJheSwgdGhpbmdzIGxpa2UgdGhhdC4gIEEgYml0IGxpa2UgdGhvc2UgYXNz ZXJ0cyBlbmFibGVkIGJ5DQpfX0dMSUJDWFhfREVCVUcuDQoNCj4gZGlmZiAt LWdpdCBhL2dkYi9leHRlbnNpb24uaCBiL2dkYi9leHRlbnNpb24uaA0KPiBp bmRleCAwYzhjNGVlOTM0Li40NzE2ZDZmMzYwIDEwMDY0NA0KPiAtLS0gYS9n ZGIvZXh0ZW5zaW9uLmgNCj4gKysrIGIvZ2RiL2V4dGVuc2lvbi5oDQo+IEBA IC0yMiw2ICsyMiw3IEBADQo+ICANCj4gICNpbmNsdWRlICJtaS9taS1jbWRz LmgiIC8qIEZvciBQUklOVF9OT19WQUxVRVMsIGV0Yy4gICovDQo+ICAjaW5j bHVkZSAiY29tbW9uL3ZlYy5oIg0KPiArI2luY2x1ZGUgImNvbW1vbi9hcnJh eS12aWV3LmgiDQo+ICANCj4gIHN0cnVjdCBicmVha3BvaW50Ow0KPiAgc3Ry dWN0IGNvbW1hbmRfbGluZTsNCj4gQEAgLTE4NiwzOCArMTg3LDM1IEBAIHN0 cnVjdCB4bWV0aG9kX3dvcmtlcg0KPiAgICB2aXJ0dWFsIH54bWV0aG9kX3dv cmtlciAoKSA9IGRlZmF1bHQ7DQo+ICANCj4gICAgLyogSW52b2tlIHRoZSB4 bWV0aG9kIGVuY2Fwc3VsYXRlZCBpbiB0aGlzIHdvcmtlciBhbmQgcmV0dXJu IHRoZSByZXN1bHQuDQo+IC0gICAgIFRoZSBtZXRob2QgaXMgaW52b2tlZCBv biBPQkogd2l0aCBhcmd1bWVudHMgaW4gdGhlIEFSR1MgYXJyYXkuICBOQVJH UyBpcw0KPiAtICAgICB0aGUgbGVuZ3RoIG9mIHRoZSB0aGlzIGFycmF5LiAg Ki8NCj4gKyAgICAgVGhlIG1ldGhvZCBpcyBpbnZva2VkIG9uIE9CSiB3aXRo IGFyZ3VtZW50cyBpbiB0aGUgQVJHUyBhcnJheS4gICovDQo+ICANCj4gLSAg dmlydHVhbCB2YWx1ZSAqaW52b2tlICh2YWx1ZSAqb2JqLCB2YWx1ZSAqKmFy Z3MsIGludCBuYXJncykgPSAwOw0KPiArICB2aXJ0dWFsIHZhbHVlICppbnZv a2UgKHZhbHVlICpvYmosIGdkYjo6YXJyYXlfdmlldzx2YWx1ZSAqPiBhcmdz KSA9IDA7DQo+ICANCj4gICAgLyogUmV0dXJuIHRoZSBhcmcgdHlwZXMgb2Yg dGhlIHhtZXRob2QgZW5jYXBzdWxhdGVkIGluIHRoaXMgd29ya2VyLg0KPiAt ICAgICBBbiBhcnJheSBvZiBhcmcgdHlwZXMgaXMgcmV0dXJuZWQuICBUaGUg bGVuZ3RoIG9mIHRoZSBhcnJheSBpcyByZXR1cm5lZCBpbg0KPiAtICAgICBO QVJHUy4gIFRoZSB0eXBlIG9mIHRoZSAndGhpcycgb2JqZWN0IGlzIHJldHVy bmVkIGFzIHRoZSBmaXJzdCBlbGVtZW50IG9mDQo+IC0gICAgIGFycmF5LiAg Ki8NCj4gKyAgICAgVGhlIHR5cGUgb2YgdGhlICd0aGlzJyBvYmplY3QgaXMg cmV0dXJuZWQgYXMgdGhlIGZpcnN0IGVsZW1lbnQgb2YNCj4gKyAgICAgdGhl IHZlY3Rvci4gICovDQo+ICANCj4gLSAgdHlwZSAqKmdldF9hcmdfdHlwZXMg KGludCAqbmFyZ3MpOw0KPiArICBzdGQ6OnZlY3Rvcjx0eXBlICo+IGdldF9h cmdfdHlwZXMgKCk7DQo+ICANCj4gICAgLyogUmV0dXJuIHRoZSB0eXBlIG9m IHRoZSByZXN1bHQgb2YgdGhlIHhtZXRob2QgZW5jYXBzdWxhdGVkIGluIHRo aXMgd29ya2VyLg0KPiAtICAgICBPQkpFQ1QsIEFSR1MsIE5BUkdTIGFyZSB0 aGUgc2FtZSBhcyBmb3IgaW52b2tlLiAgKi8NCj4gKyAgICAgT0JKRUNUIGFu ZCBBUkdTIGFyZSB0aGUgc2FtZSBhcyBmb3IgaW52b2tlLiAgKi8NCj4gIA0K PiAtICB0eXBlICpnZXRfcmVzdWx0X3R5cGUgKHZhbHVlICpvYmplY3QsIHZh bHVlICoqYXJncywgaW50IG5hcmdzKTsNCj4gKyAgdHlwZSAqZ2V0X3Jlc3Vs dF90eXBlICh2YWx1ZSAqb2JqZWN0LCBnZGI6OmFycmF5X3ZpZXc8dmFsdWUg Kj4gYXJncyk7DQo+ICANCj4gIHByaXZhdGU6DQo+ICANCj4gLSAgLyogUmV0 dXJuIHRoZSB0eXBlcyBvZiB0aGUgYXJndW1lbnRzIHRoZSBtZXRob2QgdGFr ZXMuICBUaGUgbnVtYmVyIG9mDQo+IC0gICAgIGFyZ3VtZW50cyBpcyByZXR1 cm5lZCBpbiBOQVJHUywgYW5kIHRoZWlyIHR5cGVzIGFyZSByZXR1cm5lZCBp biB0aGUgYXJyYXkNCj4gLSAgICAgQVJHVFlQRVMuICAqLw0KPiArICAvKiBS ZXR1cm4gdGhlIHR5cGVzIG9mIHRoZSBhcmd1bWVudHMgdGhlIG1ldGhvZCB0 YWtlcy4gIFRoZSB0eXBlcw0KPiArICAgICBhcmUgcmV0dXJuZWQgaW4gVFlQ RV9BUkdTLCBvbmUgcGVyIGFyZ3VtZW50LiAgKi8NCj4gIA0KPiAgICB2aXJ0 dWFsIGVudW0gZXh0X2xhbmdfcmMgZG9fZ2V0X2FyZ190eXBlcw0KPiAtICAg IChpbnQgKm5hcmdzLCBzdHJ1Y3QgdHlwZSAqKiphcmdfdHlwZXMpID0gMDsN Cj4gKyAgICAoc3RkOjp2ZWN0b3I8dHlwZSAqPiAmdHlwZV9hcmdzKSA9IDA7 DQoNCkNvdWxkIHlvdSBjaGFuZ2UgdGhpcyB0byBiZSBhIHBvaW50ZXIgdG8g dGhlIHN0ZDo6dmVjdG9yPw0KDQpodHRwczovL3NvdXJjZXdhcmUub3JnL2dk Yi93aWtpL0ludGVybmFscyUyMEdEQi1DLUNvZGluZy1TdGFuZGFyZHMjQXZv aWRfbm9uLWNvbnN0X3JlZmVyZW5jZV9wYXJhbWV0ZXJzLjJDX3VzZV9wb2lu dGVyc19pbnN0ZWFkDQoNCj4gQEAgLTMxMiwxOSArMzEyLDE5IEBAIHZhbHVl X3VzZXJfZGVmaW5lZF9jcHBfb3AgKHN0cnVjdCB2YWx1ZSAqKmFyZ3MsIGlu dCBuYXJncywgY2hhciAqb3BlciwNCj4gICAgIGZ1bmN0aW9uLCBvdGhlcndp c2UgcmV0dXJuIE5VTEwuICAqLw0KPiAgDQo+ICBzdGF0aWMgc3RydWN0IHZh bHVlICoNCj4gLXZhbHVlX3VzZXJfZGVmaW5lZF9vcCAoc3RydWN0IHZhbHVl ICoqYXJncCwgc3RydWN0IHZhbHVlICoqYXJncywgY2hhciAqbmFtZSwNCj4g LSAgICAgICAgICAgICAgICAgICAgICAgaW50ICpzdGF0aWNfbWVtZnVuY3As IGludCBuYXJncywgZW51bSBub3NpZGUgbm9zaWRlKQ0KPiArdmFsdWVfdXNl cl9kZWZpbmVkX29wIChzdHJ1Y3QgdmFsdWUgKiphcmdwLCBnZGI6OmFycmF5 X3ZpZXc8dmFsdWUgKj4gYXJncywgY2hhciAqbmFtZSwNCj4gKwkJICAgICAg IGludCAqc3RhdGljX21lbWZ1bmNwLCBlbnVtIG5vc2lkZSBub3NpZGUpDQo+ ICB7DQo+ICAgIHN0cnVjdCB2YWx1ZSAqcmVzdWx0ID0gTlVMTDsNCj4gIA0K PiAgICBpZiAoY3VycmVudF9sYW5ndWFnZS0+bGFfbGFuZ3VhZ2UgPT0gbGFu Z3VhZ2VfY3BsdXMpDQo+ICAgICAgew0KPiAtICAgICAgcmVzdWx0ID0gdmFs dWVfdXNlcl9kZWZpbmVkX2NwcF9vcCAoYXJncywgbmFyZ3MsIG5hbWUsIHN0 YXRpY19tZW1mdW5jcCwNCj4gKyAgICAgIHJlc3VsdCA9IHZhbHVlX3VzZXJf ZGVmaW5lZF9jcHBfb3AgKGFyZ3MsIG5hbWUsIHN0YXRpY19tZW1mdW5jcCwN Cj4gIAkJCQkJICBub3NpZGUpOw0KPiAgICAgIH0NCg0KTWF5YmUgcmVtb3Zl IHRoZSBleHRyYSBicmFjZXMsIHdoaWxlIHRvdWNoaW5nIHRoaXMuDQoNClNp bW9uDQo= >From gdb-patches-return-151658-listarch-gdb-patches=sources.redhat.com@sourceware.org Wed Oct 17 17:05:02 2018 Return-Path: Delivered-To: listarch-gdb-patches@sources.redhat.com Received: (qmail 39334 invoked by alias); 17 Oct 2018 17:05:02 -0000 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 Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 39288 invoked by uid 89); 17 Oct 2018 17:05:01 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-25.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_LAZY_DOMAIN_SECURITY,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=terminal, road X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 17 Oct 2018 17:04:59 +0000 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id D48F5C05000F; Wed, 17 Oct 2018 17:04:57 +0000 (UTC) Received: from [127.0.0.1] (ovpn04.gateway.prod.ext.ams2.redhat.com [10.39.146.4]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1BF2D5C8B4; Wed, 17 Oct 2018 17:04:56 +0000 (UTC) Subject: Re: [PATCH 3/3] Avoid GDB SIGTTOU on catch exec + set follow-exec-mode new (PR 23368) To: Simon Marchi , gdb-patches@sourceware.org References: <20181016033835.17594-1-simon.marchi@polymtl.ca> <20181016033835.17594-3-simon.marchi@polymtl.ca> From: Pedro Alves Message-ID: <37bde004-853a-3ccc-3777-03cc43b36147@redhat.com> Date: Wed, 17 Oct 2018 17:05:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <20181016033835.17594-3-simon.marchi@polymtl.ca> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-SW-Source: 2018-10/txt/msg00376.txt.bz2 Content-length: 3996 On 10/16/2018 04:38 AM, Simon Marchi wrote: > Here's a summary of PR 23368: > > #include > int main (void) > { > char *exec_args[] = { "/bin/ls", NULL }; > execve (exec_args[0], exec_args, NULL); > } > > $ gdb -nx t -ex "catch exec" -ex "set follow-exec-mode new" -ex run > ... > [1] + 13146 suspended (tty output) gdb -q -nx t -ex "catch exec" -ex "set follow-exec-mode new" -ex run > $ > > Here's what happens: when the inferior execs with "follow-exec-mode > new", we first "mourn" it before creating the new one. This ends up > calling inflow_inferior_exit, which sets the per-inferior terminal state > to "is_ours": > > inf->terminal_state = target_terminal_state::is_ours; > > At this point, the inferior's terminal_state is is_ours, while the > "reality", tracked by gdb_tty_state, is is_inferior (GDB doesn't own the > terminal). > > Later, we continue processing the exec inferior event and decide we want > to stop (because of the "catch exec") and call target_terminal::ours to > make sure we own the terminal. However, we don't actually go to the > target backend to change the settings, because the core thinks that no > inferior owns the terminal (inf->terminal_state is > target_terminal_state::is_ours, as checked in > target_terminal_is_ours_kind, for both inferiors). ^^^^^^^^^^^^^^^^^^ I think the "for both inferiors" part is what's dubious here. The process lives on in the new inferior, but we lost its terminal settings! Seems to me that they should be migrated from the old inferior to the new one. And then the problem sorts itself out, because then the new inferior will have target_terminal_state::is_inferior state. > When something in > readline tries to mess with the terminal settings, it generates a > SIGTTOU. > > This patch manages to fix this particular case by calling > target_terminal::ours() in inflow_inferior_exit. This makes so that > inflow actually changes the terminal settings so that GDB owns it, which > avoids the SIGTTOU later. > > The buildbot doesn't complain, but I am not sure this is the most > bestest way to fix this, maybe it's just papering over the actual > problem or introduces some latent bug. In particular, I am not sure if > this is correct in case we have multiple inferiors sharing the same > terminal. But I thought I would still submit this patch to get the ball > rolling. Yeah, I don't think this is right in the multi-inferior (or multi-target) case. It may happen to just work because we always stop everything when an inferior exits. In the exec case, if you don't catch the exec, then we won't stop; likely it ends up working because we end up calling target_terminal::inferior() on resume. Still, I think this is a hack that would likely cause trouble down the road. > > gdb/ChangeLog: > > PR gdb/23368 > * inflow.c (inflow_inferior_exit): Update doc. Call > target_terminal::ours. > --- > gdb/inflow.c | 9 +++------ > 1 file changed, 3 insertions(+), 6 deletions(-) > > diff --git a/gdb/inflow.c b/gdb/inflow.c > index e355f4aa9fc5..95e195167ef7 100644 > --- a/gdb/inflow.c > +++ b/gdb/inflow.c > @@ -653,18 +653,15 @@ get_inflow_inferior_data (struct inferior *inf) > return info; > } > > -/* This is a "inferior_exit" observer. Releases the TERMINAL_INFO member > - of the inferior structure. This field is private to inflow.c, and > - its type is opaque to the rest of GDB. PID is the target pid of > - the inferior that is about to be removed from the inferior > - list. */ > +/* This is a "inferior_exit" observer. Releases the terminal info associated > + to INF. */ > > static void > inflow_inferior_exit (struct inferior *inf) > { > struct terminal_info *info; > > - inf->terminal_state = target_terminal_state::is_ours; > + target_terminal::ours (); > > info = (struct terminal_info *) inferior_data (inf, inflow_inferior_data); > if (info != NULL) Thanks, Pedro Alves