From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11843 invoked by alias); 30 Jan 2018 15:16:04 -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 11834 invoked by uid 89); 30 Jan 2018 15:16:04 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.0 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,MIME_BASE64_BLANKS,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: EUR03-VE1-obe.outbound.protection.outlook.com Received: from mail-eopbgr50083.outbound.protection.outlook.com (HELO EUR03-VE1-obe.outbound.protection.outlook.com) (40.107.5.83) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 30 Jan 2018 15:15:55 +0000 Received: from AM3PR08MB0101.eurprd08.prod.outlook.com (10.160.211.19) by AM3PR08MB0659.eurprd08.prod.outlook.com (10.163.189.13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Tue, 30 Jan 2018 15:15:50 +0000 Received: from AM3PR08MB0101.eurprd08.prod.outlook.com ([fe80::c95:81b8:c681:ae2]) by AM3PR08MB0101.eurprd08.prod.outlook.com ([fe80::c95:81b8:c681:ae2%17]) with mapi id 15.20.0444.016; Tue, 30 Jan 2018 15:15:51 +0000 From: Alan Hayward To: Yao Qi CC: Simon Marchi , Philipp Rudo , Simon Marchi , "gdb-patches@sourceware.org" , nd Subject: Re: [PATCH] Use visitors for make_gdb_type Date: Tue, 30 Jan 2018 15:16:00 -0000 Message-ID: <0D465C5F-EA4D-4A6C-94C7-9EE3377CAE7E@arm.com> References: <20180129102836.5d521e5f@ThinkPad> <707546ED-241F-4641-97A9-551C6FF0E7B4@arm.com> In-Reply-To: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alan.Hayward@arm.com; x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;AM3PR08MB0659;7:cBjJ7Nv9DnVV//LtCkK30QN48YBbvCxzkRPeEa6XdsfyamJLjBp7wzzqw66XWLQbB0bNS7+xIGCRXf1cjNF2BLqEtqx0QzIXeSpD8OD7fsbLmVtZ6gXNYRfdpD+Lnl7zH/el9Xpd7UQqV+WFlBP1hjb/w9HzjkLSjpvOpuor6llXNN94StrwUgUdNQ4BW5CEP5Ec12+bJ1rSMrRi27ZwAh7cUZtKJceuvpNsVBNos/aRU1wIpmcapS1Z2IGOt8Pj x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: d1743399-9510-4289-2472-08d567f45946 x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(3008032)(2017052603307)(7153060)(7193020);SRVR:AM3PR08MB0659; x-ms-traffictypediagnostic: AM3PR08MB0659: nodisclaimer: True x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(37575265505322)(180628864354917)(131327999870524)(85827821059158); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(6040501)(2401047)(5005006)(8121501046)(10201501046)(3002001)(3231101)(944501161)(93006095)(93001095)(6055026)(6041288)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(20161123558120)(20161123560045)(6072148)(201708071742011);SRVR:AM3PR08MB0659;BCL:0;PCL:0;RULEID:;SRVR:AM3PR08MB0659; x-forefront-prvs: 0568F32D91 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(39860400002)(39380400002)(366004)(376002)(396003)(346002)(199004)(377424004)(189003)(3280700002)(14454004)(93886005)(3846002)(305945005)(54906003)(7736002)(1411001)(72206003)(3660700001)(59450400001)(5250100002)(36756003)(99286004)(53546011)(8676002)(68736007)(102836004)(8936002)(6116002)(6506007)(81156014)(81166006)(478600001)(316002)(26005)(106356001)(53936002)(6512007)(6436002)(6246003)(6486002)(53946003)(66066001)(97736004)(25786009)(33656002)(186003)(76176011)(5660300001)(2906002)(82746002)(105586002)(86362001)(2900100001)(4326008)(229853002)(39060400002)(6916009)(2950100002)(83716003);DIR:OUT;SFP:1101;SCL:1;SRVR:AM3PR08MB0659;H:AM3PR08MB0101.eurprd08.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: g4OYWgh8DJgbwSzennoYPmJ2Y9eLlqYW221IYCyHHmxjOaOvvIE5WrnvDJY4jvNP6KUZayd2K0nqVbrLqPyHMQ== spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <0FD52F4C6AA59345A7D09BC378EBD36E@eurprd08.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: d1743399-9510-4289-2472-08d567f45946 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Jan 2018 15:15:50.9305 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM3PR08MB0659 X-IsSubscribed: yes X-SW-Source: 2018-01/txt/msg00629.txt.bz2 DQoNCj4gT24gMjkgSmFuIDIwMTgsIGF0IDE2OjU0LCBZYW8gUWkgPHFpeWFv bHRjQGdtYWlsLmNvbT4gd3JvdGU6DQo+IA0KPiBPbiBNb24sIEphbiAyOSwg MjAxOCBhdCA0OjEyIFBNLCBTaW1vbiBNYXJjaGkgPHNpbW9uLm1hcmNoaUBl cmljc3Nvbi5jb20+IHdyb3RlOg0KPj4gDQo+PiBUaGF0IHNlZW1zIGxpa2Ug dW5uZWNlc3NhcnkgYm9pbGVycGxhdGUgdG8gbWUuICBJIHJlYWxseSBkb24n dCBzZWUgd2h5IGNsYXNzZXMgZGVyaXZlZA0KPj4gZnJvbSB0ZGVzY19lbGVt ZW50X3Zpc2l0b3IgaGF2ZSB0byBpbXBsZW1lbnQgbWV0aG9kcyBmb3Igbm9k ZXMgdGhleSBkb24ndCBjYXJlIGFib3V0Lg0KPj4gDQo+PiBJIGFkZGVkIFlh byBpbiBDQyBzbyBoZSBjYW4gY2hpbWUgaW4uDQo+IA0KPiBXaGVuIEkgd3Jv dGUgdGRlc2NfZWxlbWVudF92aXNpdG9yLCBpbiBteSBtaW5kLCBpdCBpcyBh biBpbnRlcmZhY2UsIHNvDQo+IEkgZXhwZWN0IGNoaWxkDQo+IGNsYXNzIGlt cGxlbWVudCBhbGwgdGhlIG1ldGhvZHMsIGJlY2F1c2UgYXQgdGhhdCBtb21l bnQsIGFsbCBtZXRob2RzIGFyZSBuZWVkZWQsDQo+IG5vIGVtcHR5IG1ldGhv ZHMuICBIb3dldmVyLCB0aGUgc2l0dWF0aW9uIGNoYW5nZWQgYSBsaXR0bGUg Yml0LCBhcyBwZXINCj4gQWxhbidzIG5lZWRzLA0KPiBwYXJ0IG9mIHRoZSBt ZXRob2RzIG9mIHRkZXNjX2VsZW1lbnRfdmlzaXRvciBhcmUgbmVlZGVkLCBh bmQgdGhlIHJlc3Qgb2YgbWV0aG9kcw0KPiBhcmUgZW1wdHkgc29tZXdoZXJl LiAgSSBkb24ndCBtaW5kIGNvbnZlcnRpbmcgdGRlc2NfZWxlbWVudF92aXNp dG9yIGludG8gYSBiYXNlDQo+IGNsYXNzIHdoaWNoIGhhcyBhbGwgdGhlc2Ug bWV0aG9kcyBlbXB0eSBhcyBhIGRlZmF1bHQuICBUaGF0IGlzIGZpbmUgdG8N Cj4gbWUuICBCeSB0aGUNCj4gd2F5LCBBbGFuJ3MgYXBwcm9hY2ggaXMgZmlu ZSB0byBtZSBhcyB3ZWxsIDopDQo+IA0KDQpJ4oCZdmUgcmVtb3ZlZCB0aGUg ZXh0cmEgY2xhc3MgYW5kIHJlcGxhY2VkIHdpdGggZGVmYXVsdCBpbXBsZW1l bnRhdGlvbnMgaW4NCnRkZXNjX2VsZW1lbnRfdmlzaXRvci4NCg0KQWxsIG9r Pw0KDQoNClRlc3RlZCBvbiBhIG1ha2UgY2hlY2sgb24geDg2IHRhcmdldHM9 YWxsIGJ1aWxkIHdpdGggdGFyZ2V0IGJvYXJkIHVuaXggbmF0aXZlLWdkYnNl cnZlci4NCkJ1aWx0IGZvciBwb3dlciAoYmVjYXVzZSBpdCBkb2VzIG5vdCB1 c2UgbmV3IHRhcmdldCBkZXNjcmlwdGlvbnMpLCBidXQgYW0gdW5hYmxlIHRv IHRlc3QuDQoNCjIwMTgtMDEtMzAgIEFsYW4gSGF5d2FyZCAgPGFsYW4uaGF5 d2FyZEBhcm0uY29tPg0KDQoJKiB0YXJnZXQtZGVzY3JpcHRpb25zLmMgKHRk ZXNjX2VsZW1lbnRfdmlzaXRvcikgQWRkIGVtcHR5IGltcGxlbWVudGF0aW9u cy4NCgkodGRlc2NfdHlwZSk6IE1vdmUgbWFrZV9nZGJfdHlwZSBmcm9tIGhl cmUuDQoJKHRkZXNjX3R5cGVfYnVpbHRpbik6IExpa2V3aXNlLg0KCSh0ZGVz Y190eXBlX3ZlY3Rvcik6IExpa2V3aXNlLg0KCSh0ZGVzY190eXBlX3dpdGhf ZmllbGRzKTogTW92ZSBtYWtlX2dkYl90eXBlXyBmdW5jdGlvbnMgZnJvbSBo ZXJlLg0KCShtYWtlX2dkYl90eXBlX3N0cnVjdCk6IE1vdmUgZnJvbSB0ZGVz Y190eXBlX3dpdGhfZmllbGRzLg0KCShtYWtlX2dkYl90eXBlX3VuaW9uKTog TGlrZXdpc2UuDQoJKG1ha2VfZ2RiX3R5cGVfZmxhZ3MpOiBMaWtld2lzZS4N CgkobWFrZV9nZGJfdHlwZV9lbnVtKTogTGlrZXdpc2UuDQoJKG1ha2VfZ2Ri X3R5cGUpOiBOZXcgZnVuY3Rpb24uDQoJKHRkZXNjX3JlZ2lzdGVyX3R5cGUp OiBVc2Ugc3RhdGljIG1ha2VfZ2RiX3R5cGUuDQoNCg0KZGlmZiAtLWdpdCBh L2dkYi90YXJnZXQtZGVzY3JpcHRpb25zLmMgYi9nZGIvdGFyZ2V0LWRlc2Ny aXB0aW9ucy5jDQppbmRleCAxYjIwYTEyZDc2OTcxOGU1OTFkZWE2ZGY4MTgz YzJlOWVjZmFjOTkwLi5jZTRjZjc2ODk5Y2NjYjFjMDA5YmM1NTZhZWI2YTc0 ZjA5MTNlZGJlIDEwMDY0NA0KLS0tIGEvZ2RiL3RhcmdldC1kZXNjcmlwdGlv bnMuYw0KKysrIGIvZ2RiL3RhcmdldC1kZXNjcmlwdGlvbnMuYw0KQEAgLTM4 LDIyICszOCwzNiBAQA0KICNpbmNsdWRlICJjb21wbGV0ZXIuaCINCiAjaW5j bHVkZSAicmVhZGxpbmUvdGlsZGUuaCIgLyogdGlsZGVfZXhwYW5kICovDQoN CitzdGF0aWMgdHlwZSAqbWFrZV9nZGJfdHlwZSAoc3RydWN0IGdkYmFyY2gg KmdkYmFyY2gsIHN0cnVjdCB0ZGVzY190eXBlICp0dHlwZSk7DQorDQogLyog VGhlIGludGVyZmFjZSB0byB2aXNpdCBkaWZmZXJlbnQgZWxlbWVudHMgb2Yg dGFyZ2V0IGRlc2NyaXB0aW9uLiAgKi8NCg0KIGNsYXNzIHRkZXNjX2VsZW1l bnRfdmlzaXRvcg0KIHsNCiBwdWJsaWM6DQotICB2aXJ0dWFsIHZvaWQgdmlz aXRfcHJlIChjb25zdCB0YXJnZXRfZGVzYyAqZSkgPSAwOw0KLSAgdmlydHVh bCB2b2lkIHZpc2l0X3Bvc3QgKGNvbnN0IHRhcmdldF9kZXNjICplKSA9IDA7 DQorICB2aXJ0dWFsIHZvaWQgdmlzaXRfcHJlIChjb25zdCB0YXJnZXRfZGVz YyAqZSkNCisgIHt9DQorDQorICB2aXJ0dWFsIHZvaWQgdmlzaXRfcG9zdCAo Y29uc3QgdGFyZ2V0X2Rlc2MgKmUpDQorICB7fQ0KKw0KKyAgdmlydHVhbCB2 b2lkIHZpc2l0X3ByZSAoY29uc3QgdGRlc2NfZmVhdHVyZSAqZSkNCisgIHt9 DQorDQorICB2aXJ0dWFsIHZvaWQgdmlzaXRfcG9zdCAoY29uc3QgdGRlc2Nf ZmVhdHVyZSAqZSkNCisgIHt9DQoNCi0gIHZpcnR1YWwgdm9pZCB2aXNpdF9w cmUgKGNvbnN0IHRkZXNjX2ZlYXR1cmUgKmUpID0gMDsNCi0gIHZpcnR1YWwg dm9pZCB2aXNpdF9wb3N0IChjb25zdCB0ZGVzY19mZWF0dXJlICplKSA9IDA7 DQorICB2aXJ0dWFsIHZvaWQgdmlzaXQgKGNvbnN0IHRkZXNjX3R5cGVfYnVp bHRpbiAqZSkNCisgIHt9DQorDQorICB2aXJ0dWFsIHZvaWQgdmlzaXQgKGNv bnN0IHRkZXNjX3R5cGVfdmVjdG9yICplKQ0KKyAge30NCg0KLSAgdmlydHVh bCB2b2lkIHZpc2l0IChjb25zdCB0ZGVzY190eXBlX2J1aWx0aW4gKmUpID0g MDsNCi0gIHZpcnR1YWwgdm9pZCB2aXNpdCAoY29uc3QgdGRlc2NfdHlwZV92 ZWN0b3IgKmUpID0gMDsNCi0gIHZpcnR1YWwgdm9pZCB2aXNpdCAoY29uc3Qg dGRlc2NfdHlwZV93aXRoX2ZpZWxkcyAqZSkgPSAwOw0KKyAgdmlydHVhbCB2 b2lkIHZpc2l0IChjb25zdCB0ZGVzY190eXBlX3dpdGhfZmllbGRzICplKQ0K KyAge30NCg0KLSAgdmlydHVhbCB2b2lkIHZpc2l0IChjb25zdCB0ZGVzY19y ZWcgKmUpID0gMDsNCisgIHZpcnR1YWwgdm9pZCB2aXNpdCAoY29uc3QgdGRl c2NfcmVnICplKQ0KKyAge30NCiB9Ow0KDQogY2xhc3MgdGRlc2NfZWxlbWVu dA0KQEAgLTIyMywxMSArMjM3LDYgQEAgc3RydWN0IHRkZXNjX3R5cGUgOiB0 ZGVzY19lbGVtZW50DQogICB7DQogICAgIHJldHVybiAhKCp0aGlzID09IG90 aGVyKTsNCiAgIH0NCi0NCi0gIC8qIENvbnN0cnVjdCwgaWYgbmVjZXNzYXJ5 LCBhbmQgcmV0dXJuIHRoZSBHREIgdHlwZSBpbXBsZW1lbnRpbmcgdGhpcw0K LSAgICAgdGFyZ2V0IHR5cGUgZm9yIGFyY2hpdGVjdHVyZSBHREJBUkNILiAg Ki8NCi0NCi0gIHZpcnR1YWwgdHlwZSAqbWFrZV9nZGJfdHlwZSAoc3RydWN0 IGdkYmFyY2ggKmdkYmFyY2gpIGNvbnN0ID0gMDsNCiB9Ow0KDQogdHlwZWRl ZiBzdGQ6OnVuaXF1ZV9wdHI8dGRlc2NfdHlwZT4gdGRlc2NfdHlwZV91cDsN CkBAIC0yNDIsODEgKzI1MSw2IEBAIHN0cnVjdCB0ZGVzY190eXBlX2J1aWx0 aW4gOiB0ZGVzY190eXBlDQogICB7DQogICAgIHYudmlzaXQgKHRoaXMpOw0K ICAgfQ0KLQ0KLSAgdHlwZSAqbWFrZV9nZGJfdHlwZSAoc3RydWN0IGdkYmFy Y2ggKmdkYmFyY2gpIGNvbnN0IG92ZXJyaWRlDQotICB7DQotICAgIHN3aXRj aCAodGhpcy0+a2luZCkNCi0gICAgICB7DQotICAgICAgLyogUHJlZGVmaW5l ZCB0eXBlcy4gICovDQotICAgICAgY2FzZSBUREVTQ19UWVBFX0JPT0w6DQot ICAgICAgICByZXR1cm4gYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRp bl9ib29sOw0KLQ0KLSAgICAgIGNhc2UgVERFU0NfVFlQRV9JTlQ4Og0KLSAg ICAgICAgcmV0dXJuIGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0aW5f aW50ODsNCi0NCi0gICAgICBjYXNlIFRERVNDX1RZUEVfSU5UMTY6DQotICAg ICAgICByZXR1cm4gYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl9p bnQxNjsNCi0NCi0gICAgICBjYXNlIFRERVNDX1RZUEVfSU5UMzI6DQotICAg ICAgICByZXR1cm4gYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl9p bnQzMjsNCi0NCi0gICAgICBjYXNlIFRERVNDX1RZUEVfSU5UNjQ6DQotICAg ICAgICByZXR1cm4gYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl9p bnQ2NDsNCi0NCi0gICAgICBjYXNlIFRERVNDX1RZUEVfSU5UMTI4Og0KLSAg ICAgICAgcmV0dXJuIGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0aW5f aW50MTI4Ow0KLQ0KLSAgICAgIGNhc2UgVERFU0NfVFlQRV9VSU5UODoNCi0g ICAgICAgIHJldHVybiBidWlsdGluX3R5cGUgKGdkYmFyY2gpLT5idWlsdGlu X3VpbnQ4Ow0KLQ0KLSAgICAgIGNhc2UgVERFU0NfVFlQRV9VSU5UMTY6DQot ICAgICAgICByZXR1cm4gYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRp bl91aW50MTY7DQotDQotICAgICAgY2FzZSBUREVTQ19UWVBFX1VJTlQzMjoN Ci0gICAgICAgIHJldHVybiBidWlsdGluX3R5cGUgKGdkYmFyY2gpLT5idWls dGluX3VpbnQzMjsNCi0NCi0gICAgICBjYXNlIFRERVNDX1RZUEVfVUlOVDY0 Og0KLSAgICAgICAgcmV0dXJuIGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1 aWx0aW5fdWludDY0Ow0KLQ0KLSAgICAgIGNhc2UgVERFU0NfVFlQRV9VSU5U MTI4Og0KLSAgICAgICAgcmV0dXJuIGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCkt PmJ1aWx0aW5fdWludDEyODsNCi0NCi0gICAgICBjYXNlIFRERVNDX1RZUEVf Q09ERV9QVFI6DQotICAgICAgICByZXR1cm4gYnVpbHRpbl90eXBlIChnZGJh cmNoKS0+YnVpbHRpbl9mdW5jX3B0cjsNCi0NCi0gICAgICBjYXNlIFRERVND X1RZUEVfREFUQV9QVFI6DQotICAgICAgICByZXR1cm4gYnVpbHRpbl90eXBl IChnZGJhcmNoKS0+YnVpbHRpbl9kYXRhX3B0cjsNCi0gICAgICB9DQotDQot ICAgIHR5cGUgKmdkYl90eXBlID0gdGRlc2NfZmluZF90eXBlIChnZGJhcmNo LCB0aGlzLT5uYW1lLmNfc3RyICgpKTsNCi0gICAgaWYgKGdkYl90eXBlICE9 IE5VTEwpDQotICAgICAgcmV0dXJuIGdkYl90eXBlOw0KLQ0KLSAgICBzd2l0 Y2ggKHRoaXMtPmtpbmQpDQotICAgICAgew0KLSAgICAgIGNhc2UgVERFU0Nf VFlQRV9JRUVFX1NJTkdMRToNCi0gICAgICAgIHJldHVybiBhcmNoX2Zsb2F0 X3R5cGUgKGdkYmFyY2gsIC0xLCAiYnVpbHRpbl90eXBlX2llZWVfc2luZ2xl IiwNCi0JCQkJZmxvYXRmb3JtYXRzX2llZWVfc2luZ2xlKTsNCi0NCi0gICAg ICBjYXNlIFRERVNDX1RZUEVfSUVFRV9ET1VCTEU6DQotICAgICAgICByZXR1 cm4gYXJjaF9mbG9hdF90eXBlIChnZGJhcmNoLCAtMSwgImJ1aWx0aW5fdHlw ZV9pZWVlX2RvdWJsZSIsDQotCQkJCWZsb2F0Zm9ybWF0c19pZWVlX2RvdWJs ZSk7DQotDQotICAgICAgY2FzZSBUREVTQ19UWVBFX0FSTV9GUEFfRVhUOg0K LSAgICAgICAgcmV0dXJuIGFyY2hfZmxvYXRfdHlwZSAoZ2RiYXJjaCwgLTEs ICJidWlsdGluX3R5cGVfYXJtX2V4dCIsDQotCQkJCWZsb2F0Zm9ybWF0c19h cm1fZXh0KTsNCi0NCi0gICAgICBjYXNlIFRERVNDX1RZUEVfSTM4N19FWFQ6 DQotICAgICAgICByZXR1cm4gYXJjaF9mbG9hdF90eXBlIChnZGJhcmNoLCAt MSwgImJ1aWx0aW5fdHlwZV9pMzg3X2V4dCIsDQotCQkJCWZsb2F0Zm9ybWF0 c19pMzg3X2V4dCk7DQotICAgICAgfQ0KLQ0KLSAgICBpbnRlcm5hbF9lcnJv ciAoX19GSUxFX18sIF9fTElORV9fLA0KLQkJICAgICJUeXBlIFwiJXNcIiBo YXMgYW4gdW5rbm93biBraW5kICVkIiwNCi0JCSAgICB0aGlzLT5uYW1lLmNf c3RyICgpLCB0aGlzLT5raW5kKTsNCi0NCi0gICAgcmV0dXJuIE5VTEw7DQot ICB9DQogfTsNCg0KIC8qIHRkZXNjX3R5cGUgZm9yIHZlY3RvciB0eXBlcy4g ICovDQpAQCAtMzMzLDE5ICsyNjcsNiBAQCBzdHJ1Y3QgdGRlc2NfdHlwZV92 ZWN0b3IgOiB0ZGVzY190eXBlDQogICAgIHYudmlzaXQgKHRoaXMpOw0KICAg fQ0KDQotICB0eXBlICptYWtlX2dkYl90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAq Z2RiYXJjaCkgY29uc3Qgb3ZlcnJpZGUNCi0gIHsNCi0gICAgdHlwZSAqdmVj dG9yX2dkYl90eXBlID0gdGRlc2NfZmluZF90eXBlIChnZGJhcmNoLCB0aGlz LT5uYW1lLmNfc3RyICgpKTsNCi0gICAgaWYgKHZlY3Rvcl9nZGJfdHlwZSAh PSBOVUxMKQ0KLSAgICAgIHJldHVybiB2ZWN0b3JfZ2RiX3R5cGU7DQotDQot ICAgIHR5cGUgKmVsZW1lbnRfZ2RiX3R5cGUgPSB0aGlzLT5lbGVtZW50X3R5 cGUtPm1ha2VfZ2RiX3R5cGUgKGdkYmFyY2gpOw0KLSAgICB2ZWN0b3JfZ2Ri X3R5cGUgPSBpbml0X3ZlY3Rvcl90eXBlIChlbGVtZW50X2dkYl90eXBlLCB0 aGlzLT5jb3VudCk7DQotICAgIFRZUEVfTkFNRSAodmVjdG9yX2dkYl90eXBl KSA9IHhzdHJkdXAgKHRoaXMtPm5hbWUuY19zdHIgKCkpOw0KLQ0KLSAgICBy ZXR1cm4gdmVjdG9yX2dkYl90eXBlOw0KLSAgfQ0KLQ0KICAgc3RydWN0IHRk ZXNjX3R5cGUgKmVsZW1lbnRfdHlwZTsNCiAgIGludCBjb3VudDsNCiB9Ow0K QEAgLTM2NCwxNTEgKzI4NSwyNjQgQEAgc3RydWN0IHRkZXNjX3R5cGVfd2l0 aF9maWVsZHMgOiB0ZGVzY190eXBlDQogICAgIHYudmlzaXQgKHRoaXMpOw0K ICAgfQ0KDQotICB0eXBlICptYWtlX2dkYl90eXBlX3N0cnVjdCAoc3RydWN0 IGdkYmFyY2ggKmdkYmFyY2gpIGNvbnN0DQorICBzdGQ6OnZlY3Rvcjx0ZGVz Y190eXBlX2ZpZWxkPiBmaWVsZHM7DQorICBpbnQgc2l6ZTsNCit9Ow0KKw0K Ky8qIENvbnZlcnQgYSB0ZGVzY190eXBlIHRvIGEgZ2RiIHR5cGUuICAqLw0K Kw0KK3N0YXRpYyB0eXBlICoNCittYWtlX2dkYl90eXBlIChzdHJ1Y3QgZ2Ri YXJjaCAqZ2RiYXJjaCwgc3RydWN0IHRkZXNjX3R5cGUgKnR0eXBlKQ0KK3sN CisgIGNsYXNzIGdkYl90eXBlX2NyZWF0b3IgOiBwdWJsaWMgdGRlc2NfZWxl bWVudF92aXNpdG9yDQogICB7DQotICAgIHR5cGUgKnN0cnVjdF9nZGJfdHlw ZSA9IGFyY2hfY29tcG9zaXRlX3R5cGUgKGdkYmFyY2gsIE5VTEwsIFRZUEVf Q09ERV9TVFJVQ1QpOw0KLSAgICBUWVBFX05BTUUgKHN0cnVjdF9nZGJfdHlw ZSkgPSB4c3RyZHVwICh0aGlzLT5uYW1lLmNfc3RyICgpKTsNCi0gICAgVFlQ RV9UQUdfTkFNRSAoc3RydWN0X2dkYl90eXBlKSA9IFRZUEVfTkFNRSAoc3Ry dWN0X2dkYl90eXBlKTsNCisgIHB1YmxpYzoNCisgICAgZ2RiX3R5cGVfY3Jl YXRvciAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gpDQorICAgICAgOiBtX2dk YmFyY2ggKGdkYmFyY2gpDQorICAgIHt9DQoNCi0gICAgZm9yIChjb25zdCB0 ZGVzY190eXBlX2ZpZWxkICZmIDogdGhpcy0+ZmllbGRzKQ0KLSAgICAgIHsN Ci0JaWYgKGYuc3RhcnQgIT0gLTEgJiYgZi5lbmQgIT0gLTEpDQotCSAgew0K LQkgICAgLyogQml0ZmllbGQuICAqLw0KLQkgICAgc3RydWN0IGZpZWxkICpm bGQ7DQotCSAgICBzdHJ1Y3QgdHlwZSAqZmllbGRfZ2RiX3R5cGU7DQotCSAg ICBpbnQgYml0c2l6ZSwgdG90YWxfc2l6ZTsNCi0NCi0JICAgIC8qIFRoaXMg aW52YXJpYW50IHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hpbGUgY3JlYXRpbmcg dHlwZXMuICAqLw0KLQkgICAgZ2RiX2Fzc2VydCAodGhpcy0+c2l6ZSAhPSAw KTsNCi0JICAgIGlmIChmLnR5cGUgIT0gTlVMTCkNCi0JICAgICAgZmllbGRf Z2RiX3R5cGUgPSBmLnR5cGUtPm1ha2VfZ2RiX3R5cGUgKGdkYmFyY2gpOw0K LQkgICAgZWxzZSBpZiAodGhpcy0+c2l6ZSA+IDQpDQotCSAgICAgIGZpZWxk X2dkYl90eXBlID0gYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl91 aW50NjQ7DQotCSAgICBlbHNlDQotCSAgICAgIGZpZWxkX2dkYl90eXBlID0g YnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl91aW50MzI7DQotDQot CSAgICBmbGQgPSBhcHBlbmRfY29tcG9zaXRlX3R5cGVfZmllbGRfcmF3DQot CSAgICAgIChzdHJ1Y3RfZ2RiX3R5cGUsIHhzdHJkdXAgKGYubmFtZS5jX3N0 ciAoKSksIGZpZWxkX2dkYl90eXBlKTsNCi0NCi0JICAgIC8qIEZvciBsaXR0 bGUtZW5kaWFuLCBCSVRQT1MgY291bnRzIGZyb20gdGhlIExTQiBvZg0KLQkg ICAgICAgdGhlIHN0cnVjdHVyZSBhbmQgbWFya3MgdGhlIExTQiBvZiB0aGUg ZmllbGQuICBGb3INCi0JICAgICAgIGJpZy1lbmRpYW4sIEJJVFBPUyBjb3Vu dHMgZnJvbSB0aGUgTVNCIG9mIHRoZQ0KLQkgICAgICAgc3RydWN0dXJlIGFu ZCBtYXJrcyB0aGUgTVNCIG9mIHRoZSBmaWVsZC4gIEVpdGhlcg0KLQkgICAg ICAgd2F5LCBpdCBpcyB0aGUgbnVtYmVyIG9mIGJpdHMgdG8gdGhlICJsZWZ0 IiBvZiB0aGUNCi0JICAgICAgIGZpZWxkLiAgVG8gY2FsY3VsYXRlIHRoaXMg aW4gYmlnLWVuZGlhbiwgd2UgbmVlZA0KLQkgICAgICAgdGhlIHRvdGFsIHNp emUgb2YgdGhlIHN0cnVjdHVyZS4gICovDQotCSAgICBiaXRzaXplID0gZi5l bmQgLSBmLnN0YXJ0ICsgMTsNCi0JICAgIHRvdGFsX3NpemUgPSB0aGlzLT5z aXplICogVEFSR0VUX0NIQVJfQklUOw0KLQkgICAgaWYgKGdkYmFyY2hfYml0 c19iaWdfZW5kaWFuIChnZGJhcmNoKSkNCi0JICAgICAgU0VUX0ZJRUxEX0JJ VFBPUyAoZmxkWzBdLCB0b3RhbF9zaXplIC0gZi5zdGFydCAtIGJpdHNpemUp Ow0KLQkgICAgZWxzZQ0KLQkgICAgICBTRVRfRklFTERfQklUUE9TIChmbGRb MF0sIGYuc3RhcnQpOw0KLQkgICAgRklFTERfQklUU0laRSAoZmxkWzBdKSA9 IGJpdHNpemU7DQotCSAgfQ0KLQllbHNlDQotCSAgew0KLQkgICAgZ2RiX2Fz c2VydCAoZi5zdGFydCA9PSAtMSAmJiBmLmVuZCA9PSAtMSk7DQotCSAgICB0 eXBlICpmaWVsZF9nZGJfdHlwZSA9IGYudHlwZS0+bWFrZV9nZGJfdHlwZSAo Z2RiYXJjaCk7DQotCSAgICBhcHBlbmRfY29tcG9zaXRlX3R5cGVfZmllbGQg KHN0cnVjdF9nZGJfdHlwZSwNCi0JCQkJCSB4c3RyZHVwIChmLm5hbWUuY19z dHIgKCkpLA0KLQkJCQkJIGZpZWxkX2dkYl90eXBlKTsNCi0JICB9DQotICAg ICAgfQ0KKyAgICB0eXBlICpnZXRfdHlwZSAoKQ0KKyAgICB7DQorICAgICAg cmV0dXJuIG1fdHlwZTsNCisgICAgfQ0KDQotICAgIGlmICh0aGlzLT5zaXpl ICE9IDApDQotICAgICAgVFlQRV9MRU5HVEggKHN0cnVjdF9nZGJfdHlwZSkg PSB0aGlzLT5zaXplOw0KKyAgICB2b2lkIHZpc2l0IChjb25zdCB0ZGVzY190 eXBlX2J1aWx0aW4gKmUpIG92ZXJyaWRlDQorICAgIHsNCisgICAgICBzd2l0 Y2ggKGUtPmtpbmQpDQorCXsNCisJICAvKiBQcmVkZWZpbmVkIHR5cGVzLiAg Ki8NCisJY2FzZSBUREVTQ19UWVBFX0JPT0w6DQorCSAgbV90eXBlID0gYnVp bHRpbl90eXBlIChtX2dkYmFyY2gpLT5idWlsdGluX2Jvb2w7DQorCSAgcmV0 dXJuOw0KKwljYXNlIFRERVNDX1RZUEVfSU5UODoNCisJICBtX3R5cGUgPSBi dWlsdGluX3R5cGUgKG1fZ2RiYXJjaCktPmJ1aWx0aW5faW50ODsNCisJICBy ZXR1cm47DQorCWNhc2UgVERFU0NfVFlQRV9JTlQxNjoNCisJICBtX3R5cGUg PSBidWlsdGluX3R5cGUgKG1fZ2RiYXJjaCktPmJ1aWx0aW5faW50MTY7DQor CSAgcmV0dXJuOw0KKwljYXNlIFRERVNDX1RZUEVfSU5UMzI6DQorCSAgbV90 eXBlID0gYnVpbHRpbl90eXBlIChtX2dkYmFyY2gpLT5idWlsdGluX2ludDMy Ow0KKwkgIHJldHVybjsNCisJY2FzZSBUREVTQ19UWVBFX0lOVDY0Og0KKwkg IG1fdHlwZSA9IGJ1aWx0aW5fdHlwZSAobV9nZGJhcmNoKS0+YnVpbHRpbl9p bnQ2NDsNCisJICByZXR1cm47DQorCWNhc2UgVERFU0NfVFlQRV9JTlQxMjg6 DQorCSAgbV90eXBlID0gYnVpbHRpbl90eXBlIChtX2dkYmFyY2gpLT5idWls dGluX2ludDEyODsNCisJICByZXR1cm47DQorCWNhc2UgVERFU0NfVFlQRV9V SU5UODoNCisJICBtX3R5cGUgPSBidWlsdGluX3R5cGUgKG1fZ2RiYXJjaCkt PmJ1aWx0aW5fdWludDg7DQorCSAgcmV0dXJuOw0KKwljYXNlIFRERVNDX1RZ UEVfVUlOVDE2Og0KKwkgIG1fdHlwZSA9IGJ1aWx0aW5fdHlwZSAobV9nZGJh cmNoKS0+YnVpbHRpbl91aW50MTY7DQorCSAgcmV0dXJuOw0KKwljYXNlIFRE RVNDX1RZUEVfVUlOVDMyOg0KKwkgIG1fdHlwZSA9IGJ1aWx0aW5fdHlwZSAo bV9nZGJhcmNoKS0+YnVpbHRpbl91aW50MzI7DQorCSAgcmV0dXJuOw0KKwlj YXNlIFRERVNDX1RZUEVfVUlOVDY0Og0KKwkgIG1fdHlwZSA9IGJ1aWx0aW5f dHlwZSAobV9nZGJhcmNoKS0+YnVpbHRpbl91aW50NjQ7DQorCSAgcmV0dXJu Ow0KKwljYXNlIFRERVNDX1RZUEVfVUlOVDEyODoNCisJICBtX3R5cGUgPSBi dWlsdGluX3R5cGUgKG1fZ2RiYXJjaCktPmJ1aWx0aW5fdWludDEyODsNCisJ ICByZXR1cm47DQorCWNhc2UgVERFU0NfVFlQRV9DT0RFX1BUUjoNCisJICBt X3R5cGUgPSBidWlsdGluX3R5cGUgKG1fZ2RiYXJjaCktPmJ1aWx0aW5fZnVu Y19wdHI7DQorCSAgcmV0dXJuOw0KKwljYXNlIFRERVNDX1RZUEVfREFUQV9Q VFI6DQorCSAgbV90eXBlID0gYnVpbHRpbl90eXBlIChtX2dkYmFyY2gpLT5i dWlsdGluX2RhdGFfcHRyOw0KKwkgIHJldHVybjsNCisJfQ0KDQotICAgIHJl dHVybiBzdHJ1Y3RfZ2RiX3R5cGU7DQotICB9DQorICAgICAgbV90eXBlID0g dGRlc2NfZmluZF90eXBlIChtX2dkYmFyY2gsIGUtPm5hbWUuY19zdHIgKCkp Ow0KKyAgICAgIGlmIChtX3R5cGUgIT0gTlVMTCkNCisJcmV0dXJuOw0KDQot ICB0eXBlICptYWtlX2dkYl90eXBlX3VuaW9uIChzdHJ1Y3QgZ2RiYXJjaCAq Z2RiYXJjaCkgY29uc3QNCi0gIHsNCi0gICAgdHlwZSAqdW5pb25fZ2RiX3R5 cGUgPSBhcmNoX2NvbXBvc2l0ZV90eXBlIChnZGJhcmNoLCBOVUxMLCBUWVBF X0NPREVfVU5JT04pOw0KLSAgICBUWVBFX05BTUUgKHVuaW9uX2dkYl90eXBl KSA9IHhzdHJkdXAgKHRoaXMtPm5hbWUuY19zdHIgKCkpOw0KKyAgICAgIHN3 aXRjaCAoZS0+a2luZCkNCisJew0KKwljYXNlIFRERVNDX1RZUEVfSUVFRV9T SU5HTEU6DQorCSAgbV90eXBlID0gYXJjaF9mbG9hdF90eXBlIChtX2dkYmFy Y2gsIC0xLCAiYnVpbHRpbl90eXBlX2llZWVfc2luZ2xlIiwNCisJCQkJICAg IGZsb2F0Zm9ybWF0c19pZWVlX3NpbmdsZSk7DQorCSAgcmV0dXJuOw0KKw0K KwljYXNlIFRERVNDX1RZUEVfSUVFRV9ET1VCTEU6DQorCSAgbV90eXBlID0g YXJjaF9mbG9hdF90eXBlIChtX2dkYmFyY2gsIC0xLCAiYnVpbHRpbl90eXBl X2llZWVfZG91YmxlIiwNCisJCQkJICAgIGZsb2F0Zm9ybWF0c19pZWVlX2Rv dWJsZSk7DQorCSAgcmV0dXJuOw0KKwljYXNlIFRERVNDX1RZUEVfQVJNX0ZQ QV9FWFQ6DQorCSAgbV90eXBlID0gYXJjaF9mbG9hdF90eXBlIChtX2dkYmFy Y2gsIC0xLCAiYnVpbHRpbl90eXBlX2FybV9leHQiLA0KKwkJCQkgICAgZmxv YXRmb3JtYXRzX2FybV9leHQpOw0KKwkgIHJldHVybjsNCisNCisJY2FzZSBU REVTQ19UWVBFX0kzODdfRVhUOg0KKwkgIG1fdHlwZSA9IGFyY2hfZmxvYXRf dHlwZSAobV9nZGJhcmNoLCAtMSwgImJ1aWx0aW5fdHlwZV9pMzg3X2V4dCIs DQorCQkJCSAgICBmbG9hdGZvcm1hdHNfaTM4N19leHQpOw0KKwkgIHJldHVy bjsNCisJfQ0KDQotICAgIGZvciAoY29uc3QgdGRlc2NfdHlwZV9maWVsZCAm ZiA6IHRoaXMtPmZpZWxkcykNCi0gICAgICB7DQotCXR5cGUqIGZpZWxkX2dk Yl90eXBlID0gZi50eXBlLT5tYWtlX2dkYl90eXBlIChnZGJhcmNoKTsNCi0J YXBwZW5kX2NvbXBvc2l0ZV90eXBlX2ZpZWxkICh1bmlvbl9nZGJfdHlwZSwg eHN0cmR1cCAoZi5uYW1lLmNfc3RyICgpKSwNCi0JCQkJICAgICBmaWVsZF9n ZGJfdHlwZSk7DQotDQotCS8qIElmIGFueSBvZiB0aGUgY2hpbGRyZW4gb2Yg YSB1bmlvbiBhcmUgdmVjdG9ycywgZmxhZyB0aGUNCi0JICAgdW5pb24gYXMg YSB2ZWN0b3IgYWxzby4gIFRoaXMgYWxsb3dzIGUuZy4gYSB1bmlvbiBvZiB0 d28NCi0JICAgdmVjdG9yIHR5cGVzIHRvIHNob3cgdXAgYXV0b21hdGljYWxs eSBpbiAiaW5mbyB2ZWN0b3IiLiAgKi8NCi0JaWYgKFRZUEVfVkVDVE9SIChm aWVsZF9nZGJfdHlwZSkpDQotCSAgVFlQRV9WRUNUT1IgKHVuaW9uX2dkYl90 eXBlKSA9IDE7DQotICAgICAgfQ0KKyAgICAgIGludGVybmFsX2Vycm9yIChf X0ZJTEVfXywgX19MSU5FX18sDQorCQkgICAgICAiVHlwZSBcIiVzXCIgaGFz IGFuIHVua25vd24ga2luZCAlZCIsDQorCQkgICAgICBlLT5uYW1lLmNfc3Ry ICgpLCBlLT5raW5kKTsNCisgICAgfQ0KDQotICAgIHJldHVybiB1bmlvbl9n ZGJfdHlwZTsNCi0gIH0NCisgICAgdm9pZCB2aXNpdCAoY29uc3QgdGRlc2Nf dHlwZV92ZWN0b3IgKmUpIG92ZXJyaWRlDQorICAgIHsNCisgICAgICBtX3R5 cGUgPSB0ZGVzY19maW5kX3R5cGUgKG1fZ2RiYXJjaCwgZS0+bmFtZS5jX3N0 ciAoKSk7DQorICAgICAgaWYgKG1fdHlwZSAhPSBOVUxMKQ0KKwlyZXR1cm47 DQorDQorICAgICAgdHlwZSAqZWxlbWVudF9nZGJfdHlwZSA9IG1ha2VfZ2Ri X3R5cGUgKG1fZ2RiYXJjaCwgZS0+ZWxlbWVudF90eXBlKTsNCisgICAgICBt X3R5cGUgPSBpbml0X3ZlY3Rvcl90eXBlIChlbGVtZW50X2dkYl90eXBlLCBl LT5jb3VudCk7DQorICAgICAgVFlQRV9OQU1FIChtX3R5cGUpID0geHN0cmR1 cCAoZS0+bmFtZS5jX3N0ciAoKSk7DQorICAgICAgcmV0dXJuOw0KKyAgICB9 DQoNCi0gIHR5cGUgKm1ha2VfZ2RiX3R5cGVfZmxhZ3MgKHN0cnVjdCBnZGJh cmNoICpnZGJhcmNoKSBjb25zdA0KLSAgew0KLSAgICB0eXBlICpmbGFnc19n ZGJfdHlwZSA9IGFyY2hfZmxhZ3NfdHlwZSAoZ2RiYXJjaCwgdGhpcy0+bmFt ZS5jX3N0ciAoKSwNCi0JCQkJCSAgdGhpcy0+c2l6ZSAqIFRBUkdFVF9DSEFS X0JJVCk7DQorICAgIHZvaWQgdmlzaXQgKGNvbnN0IHRkZXNjX3R5cGVfd2l0 aF9maWVsZHMgKmUpIG92ZXJyaWRlDQorICAgIHsNCisgICAgICBtX3R5cGUg PSB0ZGVzY19maW5kX3R5cGUgKG1fZ2RiYXJjaCwgZS0+bmFtZS5jX3N0ciAo KSk7DQorICAgICAgaWYgKG1fdHlwZSAhPSBOVUxMKQ0KKwlyZXR1cm47DQoN Ci0gICAgZm9yIChjb25zdCB0ZGVzY190eXBlX2ZpZWxkICZmIDogdGhpcy0+ ZmllbGRzKQ0KLSAgICAgIHsNCi0gICAgICBpbnQgYml0c2l6ZSA9IGYuZW5k IC0gZi5zdGFydCArIDE7DQorICAgICAgc3dpdGNoIChlLT5raW5kKQ0KKwl7 DQorCWNhc2UgVERFU0NfVFlQRV9TVFJVQ1Q6DQorCSAgbWFrZV9nZGJfdHlw ZV9zdHJ1Y3QgKGUpOw0KKwkgIHJldHVybjsNCisJY2FzZSBUREVTQ19UWVBF X1VOSU9OOg0KKwkgIG1ha2VfZ2RiX3R5cGVfdW5pb24gKGUpOw0KKwkgIHJl dHVybjsNCisJY2FzZSBUREVTQ19UWVBFX0ZMQUdTOg0KKwkgIG1ha2VfZ2Ri X3R5cGVfZmxhZ3MgKGUpOw0KKwkgIHJldHVybjsNCisJY2FzZSBUREVTQ19U WVBFX0VOVU06DQorCSAgbWFrZV9nZGJfdHlwZV9lbnVtIChlKTsNCisJICBy ZXR1cm47DQorCX0NCg0KLSAgICAgIGdkYl9hc3NlcnQgKGYudHlwZSAhPSBO VUxMKTsNCi0gICAgICB0eXBlICpmaWVsZF9nZGJfdHlwZSA9IGYudHlwZS0+ bWFrZV9nZGJfdHlwZSAoZ2RiYXJjaCk7DQotICAgICAgYXBwZW5kX2ZsYWdz X3R5cGVfZmllbGQgKGZsYWdzX2dkYl90eXBlLCBmLnN0YXJ0LCBiaXRzaXpl LA0KLQkJCSAgICAgICBmaWVsZF9nZGJfdHlwZSwgZi5uYW1lLmNfc3RyICgp KTsNCi0gICAgICB9DQorICAgICAgaW50ZXJuYWxfZXJyb3IgKF9fRklMRV9f LCBfX0xJTkVfXywNCisJCSAgICAgICJUeXBlIFwiJXNcIiBoYXMgYW4gdW5r bm93biBraW5kICVkIiwNCisJCSAgICAgIGUtPm5hbWUuY19zdHIgKCksIGUt PmtpbmQpOw0KKyAgICB9DQoNCi0gICAgcmV0dXJuIGZsYWdzX2dkYl90eXBl Ow0KLSAgfQ0KKyAgcHJpdmF0ZToNCg0KLSAgdHlwZSAqbWFrZV9nZGJfdHlw ZV9lbnVtIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCkgY29uc3QNCi0gIHsN Ci0gICAgdHlwZSAqZW51bV9nZGJfdHlwZSA9IGFyY2hfdHlwZSAoZ2RiYXJj aCwgVFlQRV9DT0RFX0VOVU0sDQotCQkJCSAgIHRoaXMtPnNpemUgKiBUQVJH RVRfQ0hBUl9CSVQsDQotCQkJCSAgIHRoaXMtPm5hbWUuY19zdHIgKCkpOw0K KyAgICB2b2lkIG1ha2VfZ2RiX3R5cGVfc3RydWN0IChjb25zdCB0ZGVzY190 eXBlX3dpdGhfZmllbGRzICplKQ0KKyAgICB7DQorICAgICAgbV90eXBlID0g YXJjaF9jb21wb3NpdGVfdHlwZSAobV9nZGJhcmNoLCBOVUxMLCBUWVBFX0NP REVfU1RSVUNUKTsNCisgICAgICBUWVBFX05BTUUgKG1fdHlwZSkgPSB4c3Ry ZHVwIChlLT5uYW1lLmNfc3RyICgpKTsNCisgICAgICBUWVBFX1RBR19OQU1F IChtX3R5cGUpID0gVFlQRV9OQU1FIChtX3R5cGUpOw0KDQotICAgIFRZUEVf VU5TSUdORUQgKGVudW1fZ2RiX3R5cGUpID0gMTsNCi0gICAgZm9yIChjb25z dCB0ZGVzY190eXBlX2ZpZWxkICZmIDogdGhpcy0+ZmllbGRzKQ0KLSAgICAg IHsNCi0gICAgICBzdHJ1Y3QgZmllbGQgKmZsZA0KLQk9IGFwcGVuZF9jb21w b3NpdGVfdHlwZV9maWVsZF9yYXcgKGVudW1fZ2RiX3R5cGUsDQorICAgICAg Zm9yIChjb25zdCB0ZGVzY190eXBlX2ZpZWxkICZmIDogZS0+ZmllbGRzKQ0K Kwl7DQorCSAgaWYgKGYuc3RhcnQgIT0gLTEgJiYgZi5lbmQgIT0gLTEpDQor CSAgICB7DQorCSAgICAgIC8qIEJpdGZpZWxkLiAgKi8NCisJICAgICAgc3Ry dWN0IGZpZWxkICpmbGQ7DQorCSAgICAgIHN0cnVjdCB0eXBlICpmaWVsZF9n ZGJfdHlwZTsNCisJICAgICAgaW50IGJpdHNpemUsIHRvdGFsX3NpemU7DQor DQorCSAgICAgIC8qIFRoaXMgaW52YXJpYW50IHNob3VsZCBiZSBwcmVzZXJ2 ZWQgd2hpbGUgY3JlYXRpbmcgdHlwZXMuICAqLw0KKwkgICAgICBnZGJfYXNz ZXJ0IChlLT5zaXplICE9IDApOw0KKwkgICAgICBpZiAoZi50eXBlICE9IE5V TEwpDQorCQlmaWVsZF9nZGJfdHlwZSA9IG1ha2VfZ2RiX3R5cGUgKG1fZ2Ri YXJjaCwgZi50eXBlKTsNCisJICAgICAgZWxzZSBpZiAoZS0+c2l6ZSA+IDQp DQorCQlmaWVsZF9nZGJfdHlwZSA9IGJ1aWx0aW5fdHlwZSAobV9nZGJhcmNo KS0+YnVpbHRpbl91aW50NjQ7DQorCSAgICAgIGVsc2UNCisJCWZpZWxkX2dk Yl90eXBlID0gYnVpbHRpbl90eXBlIChtX2dkYmFyY2gpLT5idWlsdGluX3Vp bnQzMjsNCisNCisJICAgICAgZmxkID0gYXBwZW5kX2NvbXBvc2l0ZV90eXBl X2ZpZWxkX3Jhdw0KKwkJICAgICAgKG1fdHlwZSwgeHN0cmR1cCAoZi5uYW1l LmNfc3RyICgpKSwgZmllbGRfZ2RiX3R5cGUpOw0KKw0KKwkgICAgICAvKiBG b3IgbGl0dGxlLWVuZGlhbiwgQklUUE9TIGNvdW50cyBmcm9tIHRoZSBMU0Ig b2YNCisJCSB0aGUgc3RydWN0dXJlIGFuZCBtYXJrcyB0aGUgTFNCIG9mIHRo ZSBmaWVsZC4gIEZvcg0KKwkJIGJpZy1lbmRpYW4sIEJJVFBPUyBjb3VudHMg ZnJvbSB0aGUgTVNCIG9mIHRoZQ0KKwkJIHN0cnVjdHVyZSBhbmQgbWFya3Mg dGhlIE1TQiBvZiB0aGUgZmllbGQuICBFaXRoZXINCisJCSB3YXksIGl0IGlz IHRoZSBudW1iZXIgb2YgYml0cyB0byB0aGUgImxlZnQiIG9mIHRoZQ0KKwkJ IGZpZWxkLiAgVG8gY2FsY3VsYXRlIHRoaXMgaW4gYmlnLWVuZGlhbiwgd2Ug bmVlZA0KKwkJIHRoZSB0b3RhbCBzaXplIG9mIHRoZSBzdHJ1Y3R1cmUuICAq Lw0KKwkgICAgICBiaXRzaXplID0gZi5lbmQgLSBmLnN0YXJ0ICsgMTsNCisJ ICAgICAgdG90YWxfc2l6ZSA9IGUtPnNpemUgKiBUQVJHRVRfQ0hBUl9CSVQ7 DQorCSAgICAgIGlmIChnZGJhcmNoX2JpdHNfYmlnX2VuZGlhbiAobV9nZGJh cmNoKSkNCisJCVNFVF9GSUVMRF9CSVRQT1MgKGZsZFswXSwgdG90YWxfc2l6 ZSAtIGYuc3RhcnQgLSBiaXRzaXplKTsNCisJICAgICAgZWxzZQ0KKwkJU0VU X0ZJRUxEX0JJVFBPUyAoZmxkWzBdLCBmLnN0YXJ0KTsNCisJICAgICAgRklF TERfQklUU0laRSAoZmxkWzBdKSA9IGJpdHNpemU7DQorCSAgICB9DQorCSAg ZWxzZQ0KKwkgICAgew0KKwkgICAgICBnZGJfYXNzZXJ0IChmLnN0YXJ0ID09 IC0xICYmIGYuZW5kID09IC0xKTsNCisJICAgICAgdHlwZSAqZmllbGRfZ2Ri X3R5cGUgPSBtYWtlX2dkYl90eXBlIChtX2dkYmFyY2gsIGYudHlwZSk7DQor CSAgICAgIGFwcGVuZF9jb21wb3NpdGVfdHlwZV9maWVsZCAobV90eXBlLA0K IAkJCQkJICAgeHN0cmR1cCAoZi5uYW1lLmNfc3RyICgpKSwNCi0JCQkJCSAg IE5VTEwpOw0KKwkJCQkJICAgZmllbGRfZ2RiX3R5cGUpOw0KKwkgICAgfQ0K Kwl9DQoNCi0gICAgICBTRVRfRklFTERfQklUUE9TIChmbGRbMF0sIGYuc3Rh cnQpOw0KLSAgICAgIH0NCisgICAgICBpZiAoZS0+c2l6ZSAhPSAwKQ0KKwlU WVBFX0xFTkdUSCAobV90eXBlKSA9IGUtPnNpemU7DQorICAgIH0NCg0KLSAg ICByZXR1cm4gZW51bV9nZGJfdHlwZTsNCi0gIH0NCisgICAgdm9pZCBtYWtl X2dkYl90eXBlX3VuaW9uIChjb25zdCB0ZGVzY190eXBlX3dpdGhfZmllbGRz ICplKQ0KKyAgICB7DQorICAgICAgbV90eXBlID0gYXJjaF9jb21wb3NpdGVf dHlwZSAobV9nZGJhcmNoLCBOVUxMLCBUWVBFX0NPREVfVU5JT04pOw0KKyAg ICAgIFRZUEVfTkFNRSAobV90eXBlKSA9IHhzdHJkdXAgKGUtPm5hbWUuY19z dHIgKCkpOw0KDQotICB0eXBlICptYWtlX2dkYl90eXBlIChzdHJ1Y3QgZ2Ri YXJjaCAqZ2RiYXJjaCkgY29uc3Qgb3ZlcnJpZGUNCi0gIHsNCi0gICAgdHlw ZSAqZ2RiX3R5cGUgPSB0ZGVzY19maW5kX3R5cGUgKGdkYmFyY2gsIHRoaXMt Pm5hbWUuY19zdHIgKCkpOw0KLSAgICBpZiAoZ2RiX3R5cGUgIT0gTlVMTCkN Ci0gICAgICByZXR1cm4gZ2RiX3R5cGU7DQorICAgICAgZm9yIChjb25zdCB0 ZGVzY190eXBlX2ZpZWxkICZmIDogZS0+ZmllbGRzKQ0KKwl7DQorCSAgdHlw ZSogZmllbGRfZ2RiX3R5cGUgPSBtYWtlX2dkYl90eXBlIChtX2dkYmFyY2gs IGYudHlwZSk7DQorCSAgYXBwZW5kX2NvbXBvc2l0ZV90eXBlX2ZpZWxkICht X3R5cGUsIHhzdHJkdXAgKGYubmFtZS5jX3N0ciAoKSksDQorCQkJCSAgICAg ICBmaWVsZF9nZGJfdHlwZSk7DQorDQorCSAgLyogSWYgYW55IG9mIHRoZSBj aGlsZHJlbiBvZiBhIHVuaW9uIGFyZSB2ZWN0b3JzLCBmbGFnIHRoZQ0KKwkg ICAgIHVuaW9uIGFzIGEgdmVjdG9yIGFsc28uICBUaGlzIGFsbG93cyBlLmcu IGEgdW5pb24gb2YgdHdvDQorCSAgICAgdmVjdG9yIHR5cGVzIHRvIHNob3cg dXAgYXV0b21hdGljYWxseSBpbiAiaW5mbyB2ZWN0b3IiLiAgKi8NCisJICBp ZiAoVFlQRV9WRUNUT1IgKGZpZWxkX2dkYl90eXBlKSkNCisJICAgIFRZUEVf VkVDVE9SIChtX3R5cGUpID0gMTsNCisJfQ0KKyAgICB9DQoNCi0gICAgc3dp dGNoICh0aGlzLT5raW5kKQ0KKyAgICB2b2lkIG1ha2VfZ2RiX3R5cGVfZmxh Z3MgKGNvbnN0IHRkZXNjX3R5cGVfd2l0aF9maWVsZHMgKmUpDQogICAgIHsN Ci0gICAgICBjYXNlIFRERVNDX1RZUEVfU1RSVUNUOg0KLQlyZXR1cm4gbWFr ZV9nZGJfdHlwZV9zdHJ1Y3QgKGdkYmFyY2gpOw0KLSAgICAgIGNhc2UgVERF U0NfVFlQRV9VTklPTjoNCi0JcmV0dXJuIG1ha2VfZ2RiX3R5cGVfdW5pb24g KGdkYmFyY2gpOw0KLSAgICAgIGNhc2UgVERFU0NfVFlQRV9GTEFHUzoNCi0J cmV0dXJuIG1ha2VfZ2RiX3R5cGVfZmxhZ3MgKGdkYmFyY2gpOw0KLSAgICAg IGNhc2UgVERFU0NfVFlQRV9FTlVNOg0KLQlyZXR1cm4gbWFrZV9nZGJfdHlw ZV9lbnVtIChnZGJhcmNoKTsNCisgICAgICBtX3R5cGUgPSBhcmNoX2ZsYWdz X3R5cGUgKG1fZ2RiYXJjaCwgZS0+bmFtZS5jX3N0ciAoKSwNCisJCQkJZS0+ c2l6ZSAqIFRBUkdFVF9DSEFSX0JJVCk7DQorDQorICAgICAgZm9yIChjb25z dCB0ZGVzY190eXBlX2ZpZWxkICZmIDogZS0+ZmllbGRzKQ0KKwl7DQorCSAg aW50IGJpdHNpemUgPSBmLmVuZCAtIGYuc3RhcnQgKyAxOw0KKw0KKwkgIGdk Yl9hc3NlcnQgKGYudHlwZSAhPSBOVUxMKTsNCisJICB0eXBlICpmaWVsZF9n ZGJfdHlwZSA9IG1ha2VfZ2RiX3R5cGUgKG1fZ2RiYXJjaCwgZi50eXBlKTsN CisJICBhcHBlbmRfZmxhZ3NfdHlwZV9maWVsZCAobV90eXBlLCBmLnN0YXJ0 LCBiaXRzaXplLA0KKwkJCQkgICBmaWVsZF9nZGJfdHlwZSwgZi5uYW1lLmNf c3RyICgpKTsNCisJfQ0KICAgICB9DQoNCi0gICAgaW50ZXJuYWxfZXJyb3Ig KF9fRklMRV9fLCBfX0xJTkVfXywNCi0JCSAgICAiVHlwZSBcIiVzXCIgaGFz IGFuIHVua25vd24ga2luZCAlZCIsDQotCQkgICAgdGhpcy0+bmFtZS5jX3N0 ciAoKSwgdGhpcy0+a2luZCk7DQorICAgIHZvaWQgbWFrZV9nZGJfdHlwZV9l bnVtIChjb25zdCB0ZGVzY190eXBlX3dpdGhfZmllbGRzICplKQ0KKyAgICB7 DQorICAgICAgbV90eXBlID0gYXJjaF90eXBlIChtX2dkYmFyY2gsIFRZUEVf Q09ERV9FTlVNLCBlLT5zaXplICogVEFSR0VUX0NIQVJfQklULA0KKwkJCSAg ZS0+bmFtZS5jX3N0ciAoKSk7DQoNCi0gICAgcmV0dXJuIE5VTEw7DQotICB9 DQorICAgICAgVFlQRV9VTlNJR05FRCAobV90eXBlKSA9IDE7DQorICAgICAg Zm9yIChjb25zdCB0ZGVzY190eXBlX2ZpZWxkICZmIDogZS0+ZmllbGRzKQ0K Kwl7DQorCSAgc3RydWN0IGZpZWxkICpmbGQNCisJICAgID0gYXBwZW5kX2Nv bXBvc2l0ZV90eXBlX2ZpZWxkX3JhdyAobV90eXBlLA0KKwkJCQkJICAgICAg IHhzdHJkdXAgKGYubmFtZS5jX3N0ciAoKSksDQorCQkJCQkgICAgICAgTlVM TCk7DQoNCi0gIHN0ZDo6dmVjdG9yPHRkZXNjX3R5cGVfZmllbGQ+IGZpZWxk czsNCi0gIGludCBzaXplOw0KLX07DQorCSAgU0VUX0ZJRUxEX0JJVFBPUyAo ZmxkWzBdLCBmLnN0YXJ0KTsNCisJfQ0KKyAgICB9DQorDQorICAgIC8qIFRo ZSBnZGJhcmNoIHVzZWQuICAqLw0KKyAgICBzdHJ1Y3QgZ2RiYXJjaCAqbV9n ZGJhcmNoOw0KKw0KKyAgICAvKiBUaGUgdHlwZSBjcmVhdGVkLiAgKi8NCisg ICAgdHlwZSAqbV90eXBlOw0KKyAgfTsNCisNCisgIGdkYl90eXBlX2NyZWF0 b3IgZ2RiX3R5cGUgKGdkYmFyY2gpOw0KKyAgdHR5cGUtPmFjY2VwdCAoZ2Ri X3R5cGUpOw0KKyAgcmV0dXJuIGdkYl90eXBlLmdldF90eXBlICgpOw0KK30N Cg0KIC8qIEEgZmVhdHVyZSBmcm9tIGEgdGFyZ2V0IGRlc2NyaXB0aW9uLiAg RWFjaCBmZWF0dXJlIGlzIGEgY29sbGVjdGlvbg0KICAgIG9mIG90aGVyIGVs ZW1lbnRzLCBlLmcuIHJlZ2lzdGVycyBhbmQgdHlwZXMuICAqLw0KQEAgLTEy MTYsNyArMTI1MCw3IEBAIHRkZXNjX3JlZ2lzdGVyX3R5cGUgKHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoLCBpbnQgcmVnbm8pDQogICAgIHsNCiAgICAgICAv KiBGaXJzdCBjaGVjayBmb3IgYSBwcmVkZWZpbmVkIG9yIHRhcmdldCBkZWZp bmVkIHR5cGUuICAqLw0KICAgICAgIGlmIChyZWctPnRkZXNjX3R5cGUpDQot ICAgICAgICBhcmNoX3JlZy0+dHlwZSA9IHJlZy0+dGRlc2NfdHlwZS0+bWFr ZV9nZGJfdHlwZSAoZ2RiYXJjaCk7DQorCWFyY2hfcmVnLT50eXBlID0gbWFr ZV9nZGJfdHlwZSAoZ2RiYXJjaCwgcmVnLT50ZGVzY190eXBlKTsNCg0KICAg ICAgIC8qIE5leHQgdHJ5IHNpemUtc2Vuc2l0aXZlIHR5cGUgc2hvcnRjdXRz LiAgKi8NCiAgICAgICBlbHNlIGlmIChyZWctPnR5cGUgPT0gImZsb2F0IikN Cg0K >From gdb-patches-return-145156-listarch-gdb-patches=sources.redhat.com@sourceware.org Tue Jan 30 15:38:03 2018 Return-Path: Delivered-To: listarch-gdb-patches@sources.redhat.com Received: (qmail 102253 invoked by alias); 30 Jan 2018 15:38:03 -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 102233 invoked by uid 89); 30 Jan 2018 15:38:02 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.9 required=5.0 tests=BAYES_00,KAM_LAZY_DOMAIN_SECURITY,SPF_HELO_PASS,T_RP_MATCHES_RCVD autolearn=no version=3.3.2 spammy=Unfortunately, arrives, pump 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; Tue, 30 Jan 2018 15:38:01 +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 06FDDC057FA1 for ; Tue, 30 Jan 2018 15:38:00 +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 71CF95C25E for ; Tue, 30 Jan 2018 15:37:59 +0000 (UTC) Subject: Re: [PATCH] Per-inferior target_terminal state, fix PR gdb/13211, more To: GDB Patches References: <1512416651-6970-1-git-send-email-palves@redhat.com> From: Pedro Alves Message-ID: <447fdbde-e596-1153-85c7-251a5a767499@redhat.com> Date: Tue, 30 Jan 2018 15:38:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 MIME-Version: 1.0 In-Reply-To: <1512416651-6970-1-git-send-email-palves@redhat.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-SW-Source: 2018-01/txt/msg00630.txt.bz2 Content-length: 6799 On 12/04/2017 07:44 PM, Pedro Alves wrote: > (This applies on top of: > > [PATCH] linux-nat: Eliminate custom target_terminal_{inferior,ours}, stop using set_sigint_trap > https://sourceware.org/ml/gdb-patches/2017-11/msg00368.html > ) > > In my multi-target branch I ran into problems with GDB's terminal > handling that exist in master as well, with multi-inferior debugging. > > This patch adds a testcase for said problems > (gdb.multi/multi-term-settings.exp), fixes the problems, fixes PR > gdb/13211 as well (and adds a testcase for that too, > gdb.base/interrupt-daemon.exp). > > The basis of the problem I ran into is the following. Consider a > scenario where you have: > > - inferior 1 - started with "attach", process is running on some > other terminal. > > - inferior 2 - started with "run", process is sharing gdb's terminal. > > In this scenario, when you stop/resume both inferiors, you want GDB to > save/restore the terminal settings of inferior 2, the one that is > sharing GDB's terminal. I.e., you want inferior 2 to "own" the > terminal (in target_terminal::is_ours/target_terminal::is_inferior > sense). > > Unfortunately, that's not what you get currently. Because GDB doesn't > know whether an attached inferior is actually sharing GDB's terminal, > it tries to save/restore its settings anyway, ignoring errors. In > this case, this is pointless, because inferior 1 is running on a > different terminal, but GDB doesn't know better. > > And then, because it is only possible to have the terminal settings of > a single inferior be in effect at a time, or make one inferior/pgrp be > the terminal's foreground pgrp (aka, only one inferior can "own" the > terminal, ignoring fork children here), if GDB happens to try to > restore the terminal settings of inferior 1 first, then GDB never > restores the terminal settings of inferior 2. > > This patch fixes that and a few things more along the way: > > - Moves enum target_terminal::terminal_state out of the > target_terminal class (it's currently private) and makes it a > scoped enum so that it can be easily used elsewhere. > > - Replaces the inflow.c:terminal_is_ours boolean with a > target_terminal_state variable. This allows distinguishing is_ours > and is_ours_for_output states. This allows finally making > child_terminal_ours_1 do something with its "output_only" > parameter. > > - Makes each inferior have its own copy of the > is_ours/is_ours_for_output/is_inferior state. > > - Adds a way for GDB to tell whether the inferior is sharing GDB's > terminal. Works best on Linux and Solaris; the fallback works just > as well as currently. > > - With that, we can remove the inf->attach_flag tests from > child_terminal_inferior/child_terminal_ours. > > - Currently target_ops.to_ours is responsible for both saving the > current inferior's terminal state, and restoring gdb's state. > Because each inferior has its own terminal state (possibly handled > by different targets in a multi-target world, even), we need to > split the inferior-saving part from the gdb-restoring part. The > patch adds a new target_ops.to_save_inferior target method for > that. > > - Adds a new target_terminal::save_inferior() function, so that > sequences like: > > scoped_restore_terminal_state save_state; > target_terminal::ours_for_output (); > > ... restore back inferiors that were > target_terminal_state::is_inferior before back to is_inferior, and > leaves inferiors that were is_ours alone. > > - Along the way, this adds a default implementation of > target_pass_ctrlc to inflow.c (for inf-child.c), that handles > passing the Ctrl-C to a process running on GDB's terminal or to > some other process otherwise. > > - Similarly, adds a new target default implementation of > target_interrupt, for the "interrupt" command. The current > implementation of this hook in inf-ptrace.c kills the whole process > group, but that's incorrect/undesirable because we may not be > attached to all processes in the process group. And also, it's > incorrect because inferior_process_group() doesn't really return > the inferior's real process group id if the inferior is not a > process group leader... This is the cause of PR gdb/13211 [1], > which this patch fixes. While at it, that target method's "ptid" > parameter is eliminated, because it's not really used. > > - A new test is included that exercises and fixes PR gdb/13211, and > also fixes a GDB issue reported on stackoverflow that I ran into > while working on this [2]. The problem is similar to PR gdb/13211, > except that it also triggers with Ctrl-C. When debugging a daemon > (i.e., a process that disconnects from the controlling terminal and > is not a process group leader, then Ctrl-C doesn't work, you just > can't interrupt the inferior at all, resulting in a hung debug > session. The problem is that since the inferior is no longer > associated with gdb's session / controlling terminal, then trying > to put the inferior in the foreground fails. And so Ctrl-C never > reaches the inferior directly. pass_signal is only used when the > inferior is attached, but that is not the case here. This is fixed > by the new child_pass_ctrlc. Without the fix, the new > interrupt-daemon.exp testcase fails with timeout waiting for a > SIGINT that never arrives. > > [1] PR gdb/13211 - Async / Process group and interrupt not working > https://sourceware.org/bugzilla/show_bug.cgi?id=13211 > > [2] GDB not reacting Ctrl-C when after fork() and setsid() > https://stackoverflow.com/questions/46101292/gdb-not-reacting-ctrl-c-when-after-fork-and-setsid > > Note this patch does _not_ fix: > > - PR gdb/14559 - The 'interrupt' command does not work if sigwait is in use > https://sourceware.org/bugzilla/show_bug.cgi?id=14559 > > - PR gdb/9425 - When using "sigwait" GDB doesn't trap SIGINT. Ctrl+C terminates program when should break gdb. > https://sourceware.org/bugzilla/show_bug.cgi?id=9425 > > The only way to fix that that I know of (without changing the kernel) > is to make GDB put inferiors in a separate session (create a > pseudo-tty master/slave pair, make the inferior run with the slave as > its terminal, and have gdb pump output/input on the master end). I > have a follow up series that builds on top of this one that does that, > but that's too invasive for 8.1, I think. While this one fixes a > couple bugs already, and I think having it in 8.1 would simplify > backports for (a future) 8.1.1. I chickened out of putting this in 8.1, but I pushed it to master now, along with the prerequisite patch. Thanks, Pedro Alves