From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 35165 invoked by alias); 9 Jan 2020 16:26:12 -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 35156 invoked by uid 89); 9 Jan 2020 16:26:11 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.4 required=5.0 tests=AWL,BAYES_00,FORGED_SPF_HELO,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,UNPARSEABLE_RELAY autolearn=ham version=3.3.1 spammy= X-HELO: EUR03-VE1-obe.outbound.protection.outlook.com Received: from mail-eopbgr50071.outbound.protection.outlook.com (HELO EUR03-VE1-obe.outbound.protection.outlook.com) (40.107.5.71) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 09 Jan 2020 16:26:09 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZFh+yCCgHxVrs9a46txo7TVquELexTc6VJ88E2GfbEY=; b=7R2ucx09GMV6zS6ww1ZgrBGpfTYoRt6kPy/m2pp62BUL1SaNKNSxnZKmDIEaXQvgX10hW6MwTfc1+MGFmWjseQdUuU8kQ79Qiddr8z277QKoGFqiJcXXwMoXH9JD1WPseqw4KYAOrxS5ByUqnpU4vQJbVmaOqxde2/j7j+s8rrE= Received: from AM6PR08CA0018.eurprd08.prod.outlook.com (2603:10a6:20b:b2::30) by AM0PR08MB3587.eurprd08.prod.outlook.com (2603:10a6:208:dd::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2623.10; Thu, 9 Jan 2020 16:26:06 +0000 Received: from VE1EUR03FT024.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e09::206) by AM6PR08CA0018.outlook.office365.com (2603:10a6:20b:b2::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2623.10 via Frontend Transport; Thu, 9 Jan 2020 16:26:06 +0000 Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; sourceware.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;sourceware.org; dmarc=bestguesspass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT024.mail.protection.outlook.com (10.152.18.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2602.11 via Frontend Transport; Thu, 9 Jan 2020 16:26:05 +0000 Received: ("Tessian outbound 121a58c8f9bf:v40"); Thu, 09 Jan 2020 16:26:05 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 8f1804c87847350c X-CR-MTA-TID: 64aa7808 Received: from 43fe06401195.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 39E1A3BD-8878-445B-A1F1-C9B8ED421F95.1; Thu, 09 Jan 2020 16:26:00 +0000 Received: from EUR03-DB5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 43fe06401195.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 09 Jan 2020 16:26:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=P9eyXUNxbAS5rtLPyz5hixOfo/8JK5ZiqGc4B4VVz2ledIR3jEoU7bylLeV1fDH1HsRccl5KRpDBtspKqkbCfH8a7ps0c4U/mCvCjAleSqlOxk0hUONnzeZnUVy5eH8q6kZmYu/fFSMnsZcJowYe2SHqExJMypVSNDj2EZ/WSMKLszJDd5f+9TWh8S5W2cLBpLWPB+Kz6eLUIpMeX/5drUShp19kvenrR5zmc4jCqxcSo9KmtqLf7G9OZHgUHkNqYtIX60pC9a5fZuvkj5y2scA3Cq+HZNGq4ml6IxOE2DB5cXSlp1WVmI7IPfnv6DHrBzzuL9PDj79r3KOlqC2G5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZFh+yCCgHxVrs9a46txo7TVquELexTc6VJ88E2GfbEY=; b=XvRMm+jcNEEmnosXtYKPQCiK4FXBrdQS6wx/qH09H+d1i/QtmgLZEbiODY6ErRVFHgAJhoueS7jVD9EIl+/IcQNSFnXbbulPQwCBtapHNCnOBLwWtpYkw4jPQhXaPilO91wcmiKQAfLASIM3nL0wrcNvJjFFnT/qTN2VedYqFpy4VL9YsH1IOwuW/1ABdBq2wCx6f3FSHfe7xRG3n28iDgcUNv6yzUez6QUGC3xblUbgqGGuNQOnDMbVxWVIz6Jk4eN/HS4l+Jj5sdvVwA4DLioXngx0hqJQV8DH8NVp0va7bFpVZMLGowMFB5JrNEZKQYIqVCSzE8S/00VDUQhvtQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZFh+yCCgHxVrs9a46txo7TVquELexTc6VJ88E2GfbEY=; b=7R2ucx09GMV6zS6ww1ZgrBGpfTYoRt6kPy/m2pp62BUL1SaNKNSxnZKmDIEaXQvgX10hW6MwTfc1+MGFmWjseQdUuU8kQ79Qiddr8z277QKoGFqiJcXXwMoXH9JD1WPseqw4KYAOrxS5ByUqnpU4vQJbVmaOqxde2/j7j+s8rrE= Received: from AM0PR08MB5330.eurprd08.prod.outlook.com (52.132.212.151) by AM0PR08MB5506.eurprd08.prod.outlook.com (52.132.212.76) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2623.10; Thu, 9 Jan 2020 16:25:59 +0000 Received: from AM0PR08MB5330.eurprd08.prod.outlook.com ([fe80::89cf:a33e:c415:d30]) by AM0PR08MB5330.eurprd08.prod.outlook.com ([fe80::89cf:a33e:c415:d30%6]) with mapi id 15.20.2623.010; Thu, 9 Jan 2020 16:25:59 +0000 From: Alan Hayward To: Luis Machado CC: "gdb-patches\\@sourceware.org" , nd Subject: Re: [PATCH] [AArch64] Recognize more program breakpoint patterns Date: Thu, 09 Jan 2020 16:26:00 -0000 Message-ID: References: <20191223173432.16955-1-luis.machado@linaro.org> <690B08E1-F6A3-42B3-A788-4101D7A1F04D@arm.com> <9f11b4d9-f851-2900-82d3-2ff3244a8f81@linaro.org> In-Reply-To: <9f11b4d9-f851-2900-82d3-2ff3244a8f81@linaro.org> Authentication-Results-Original: spf=none (sender IP is ) smtp.mailfrom=Alan.Hayward@arm.com; x-checkrecipientrouted: true x-ms-oob-tlc-oobclassifiers: OLM:8882;OLM:8882; X-Forefront-Antispam-Report-Untrusted: SFV:NSPM;SFS:(10009020)(4636009)(396003)(136003)(376002)(366004)(346002)(39860400002)(54534003)(199004)(189003)(4326008)(30864003)(26005)(53546011)(6506007)(54906003)(6486002)(71200400001)(36756003)(4001150100001)(6512007)(8936002)(478600001)(6916009)(316002)(186003)(55236004)(86362001)(2616005)(66946007)(66556008)(5660300002)(91956017)(64756008)(33656002)(66476007)(81156014)(66446008)(76116006)(8676002)(81166006)(2906002);DIR:OUT;SFP:1101;SCL:1;SRVR:AM0PR08MB5506;H:AM0PR08MB5330.eurprd08.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: pzdM4f1DuUGb3g0NGK0nDtkVlIprhvI/ZrxFhdT5iTkyCpJbu1zvSK1CPs8vh7prF4WWeAv+7qDxnBwleyLQEuQl2ufg3fqQ9uNrWFVwKMnw8NpHI/COwzEkJTdiUg5jZGXIC+aYooHKooF3oTcKhUVhhHsr2ZDHlqw6eiv9j1nh+hZ9zyXJdq6yeCr0LGGKFEzZhlhTIePo3aIDhybHZlT8MDf/hzSSNCmdelbPoyjybbypUZfp5G357ce7X4OzlRJvTLu3KHt94NAVpznhtdjgfIogbDtBCzZXqdsz2iKnwKmArPI7eXcWNSdqQqy7K2gacYv791Yck7sr7BBGf3X7qwMs3IyvkfL6BL5sVfCxJRgbGTwqYslCg65eneT8EepYW0R/a5OfiPSovqC31j/ffVsJ1u9tBp2WjD/nkL1X72528+zzi45Akcs2nvPP1Z3lKB2XVMlELF1KgHJsP4I0cIWY1wmfVAfY/DpvBsErQKJ2RkE7yU06AbVo5Tq/ x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: <1A9A97D2BB28274BB091A35975167E62@eurprd08.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Original-Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Alan.Hayward@arm.com; Return-Path: Alan.Hayward@arm.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT024.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 4a443981-8213-479a-96ad-08d795209c62 X-IsSubscribed: yes X-SW-Source: 2020-01/txt/msg00211.txt.bz2 DQoNCj4gT24gOSBKYW4gMjAyMCwgYXQgMTU6NDUsIEx1aXMgTWFjaGFkbyA8 bHVpcy5tYWNoYWRvQGxpbmFyby5vcmc+IHdyb3RlOg0KPiANCj4gT24gMS85 LzIwIDExOjUyIEFNLCBBbGFuIEhheXdhcmQgd3JvdGU6DQo+Pj4gT24gMjMg RGVjIDIwMTksIGF0IDE3OjM0LCBMdWlzIE1hY2hhZG8gPGx1aXMubWFjaGFk b0BsaW5hcm8ub3JnPiB3cm90ZToNCj4+PiANCj4+PiBJdCB3YXMgcmVwb3J0 ZWQgdG8gbWUgdGhhdCBwcm9ncmFtIGJyZWFrcG9pbnRzIChwZXJtYW5lbnQg b25lcyBpbnNlcnRlZCBpbnRvDQo+Pj4gdGhlIGNvZGUgaXRzZWxmKSBvdGhl ciB0aGFuIHRoZSBvbmUgR0RCIHVzZXMgZm9yIEFBcmNoNjQgKDB4ZDQyMDAw MDApIGRvIG5vdA0KPj4+IGdlbmVyYXRlIHZpc2libGUgc3RvcHMgd2hlbiBj b250aW51aW5nLCBhbmQgR0RCIHdpbGwgY29udGludWUgc3Bpbm5pbmcNCj4+ PiBpbmZpbml0ZWx5Lg0KPj4+IA0KPj4+IFRoaXMgaGFwcGVucyBiZWNhdXNl IEdEQiwgdXBvbiBoaXR0aW5nIG9uZSBvZiB0aG9zZSBwcm9ncmFtIGJyZWFr cG9pbnRzLCB0aGlua3MNCj4+PiB0aGUgU0lHVFJBUCBjYW1lIGZyb20gYSBk ZWxheWVkIGJyZWFrcG9pbnQgaGl0Li4uDQo+Pj4gDQo+Pj4gKGdkYikgeC9p ICRwYw0KPj4+ID0+IDB4NDAwNWMwIDxwcm9ibGVtX2Z1bmN0aW9uPjogYnJr ICAgICAjMHg5MGYNCj4+PiAoZ2RiKSBjDQo+Pj4gQ29udGludWluZy4NCj4+ PiBpbmZydW46IGNsZWFyX3Byb2NlZWRfc3RhdHVzX3RocmVhZCAocHJvY2Vz cyAxNDE5OCkNCj4+PiBpbmZydW46IHByb2NlZWQgKGFkZHI9MHhmZmZmZmZm ZmZmZmZmZmZmLCBzaWduYWw9R0RCX1NJR05BTF9ERUZBVUxUKQ0KPj4+IGlu ZnJ1bjogcHJvY2VlZDogcmVzdW1pbmcgcHJvY2VzcyAxNDE5OA0KPj4+IGlu ZnJ1bjogcmVzdW1lIChzdGVwPTAsIHNpZ25hbD1HREJfU0lHTkFMXzApLCB0 cmFwX2V4cGVjdGVkPTAsIGN1cnJlbnQgdGhyZWFkIFtwcm9jZXNzIDE0MTk4 XSBhdCAweDQwMDVjMA0KPj4+IGluZnJ1bjogaW5mcnVuX2FzeW5jKDEpDQo+ Pj4gaW5mcnVuOiBwcmVwYXJlX3RvX3dhaXQNCj4+PiBpbmZydW46IHRhcmdl dF93YWl0ICgtMS4wLjAsIHN0YXR1cykgPQ0KPj4+IGluZnJ1bjogICAxNDE5 OC4xNDE5OC4wIFtwcm9jZXNzIDE0MTk4XSwNCj4+PiBpbmZydW46ICAgc3Rh dHVzLT5raW5kID0gc3RvcHBlZCwgc2lnbmFsID0gR0RCX1NJR05BTF9UUkFQ DQo+Pj4gaW5mcnVuOiBoYW5kbGVfaW5mZXJpb3JfZXZlbnQgc3RhdHVzLT5r aW5kID0gc3RvcHBlZCwgc2lnbmFsID0gR0RCX1NJR05BTF9UUkFQDQo+Pj4g aW5mcnVuOiBzdG9wX3BjID0gMHg0MDA1YzANCj4+PiBpbmZydW46IGRlbGF5 ZWQgc29mdHdhcmUgYnJlYWtwb2ludCB0cmFwLCBpZ25vcmluZw0KPj4+IGlu ZnJ1bjogbm8gc3RlcHBpbmcsIGNvbnRpbnVlDQo+Pj4gaW5mcnVuOiByZXN1 bWUgKHN0ZXA9MCwgc2lnbmFsPUdEQl9TSUdOQUxfMCksIHRyYXBfZXhwZWN0 ZWQ9MCwgY3VycmVudCB0aHJlYWQgW3Byb2Nlc3MgMTQxOThdIGF0IDB4NDAw NWMwDQo+Pj4gaW5mcnVuOiBwcmVwYXJlX3RvX3dhaXQNCj4+PiBpbmZydW46 IHRhcmdldF93YWl0ICgtMS4wLjAsIHN0YXR1cykgPQ0KPj4+IGluZnJ1bjog ICAxNDE5OC4xNDE5OC4wIFtwcm9jZXNzIDE0MTk4XSwNCj4+PiBpbmZydW46 ICAgc3RhdHVzLT5raW5kID0gc3RvcHBlZCwgc2lnbmFsID0gR0RCX1NJR05B TF9UUkFQDQo+Pj4gaW5mcnVuOiBoYW5kbGVfaW5mZXJpb3JfZXZlbnQgc3Rh dHVzLT5raW5kID0gc3RvcHBlZCwgc2lnbmFsID0gR0RCX1NJR05BTF9UUkFQ DQo+Pj4gaW5mcnVuOiBzdG9wX3BjID0gMHg0MDA1YzANCj4+PiBpbmZydW46 IGRlbGF5ZWQgc29mdHdhcmUgYnJlYWtwb2ludCB0cmFwLCBpZ25vcmluZw0K Pj4+IGluZnJ1bjogbm8gc3RlcHBpbmcsIGNvbnRpbnVlDQo+Pj4gaW5mcnVu OiByZXN1bWUgKHN0ZXA9MCwgc2lnbmFsPUdEQl9TSUdOQUxfMCksIHRyYXBf ZXhwZWN0ZWQ9MCwgY3VycmVudCB0aHJlYWQgW3Byb2Nlc3MgMTQxOThdIGF0 IDB4NDAwNWMwDQo+Pj4gaW5mcnVuOiBwcmVwYXJlX3RvX3dhaXQNCj4+PiBp bmZydW46IHRhcmdldF93YWl0ICgtMS4wLjAsIHN0YXR1cykgPQ0KPj4+IGlu ZnJ1bjogICAxNDE5OC4xNDE5OC4wIFtwcm9jZXNzIDE0MTk4XSwNCj4+PiBp bmZydW46ICAgc3RhdHVzLT5raW5kID0gc3RvcHBlZCwgc2lnbmFsID0gR0RC X1NJR05BTF9UUkFQDQo+Pj4gaW5mcnVuOiBoYW5kbGVfaW5mZXJpb3JfZXZl bnQgc3RhdHVzLT5raW5kID0gc3RvcHBlZCwgc2lnbmFsID0gR0RCX1NJR05B TF9UUkFQDQo+Pj4gaW5mcnVuOiBzdG9wX3BjID0gMHg0MDA1YzANCj4+PiBp bmZydW46IGRlbGF5ZWQgc29mdHdhcmUgYnJlYWtwb2ludCB0cmFwLCBpZ25v cmluZw0KPj4+IGluZnJ1bjogbm8gc3RlcHBpbmcsIGNvbnRpbnVlDQo+Pj4g aW5mcnVuOiByZXN1bWUgKHN0ZXA9MCwgc2lnbmFsPUdEQl9TSUdOQUxfMCks IHRyYXBfZXhwZWN0ZWQ9MCwgY3VycmVudCB0aHJlYWQgW3Byb2Nlc3MgMTQx OThdIGF0IDB4NDAwNWMwDQo+Pj4gaW5mcnVuOiBwcmVwYXJlX3RvX3dhaXQN Cj4+PiBpbmZydW46IHRhcmdldF93YWl0ICgtMS4wLjAsIHN0YXR1cykgPQ0K Pj4+IGluZnJ1bjogICAxNDE5OC4xNDE5OC4wIFtwcm9jZXNzIDE0MTk4XSwN Cj4+PiBpbmZydW46ICAgc3RhdHVzLT5raW5kID0gc3RvcHBlZCwgc2lnbmFs ID0gR0RCX1NJR05BTF9UUkFQDQo+Pj4gaW5mcnVuOiBoYW5kbGVfaW5mZXJp b3JfZXZlbnQgc3RhdHVzLT5raW5kID0gc3RvcHBlZCwgc2lnbmFsID0gR0RC X1NJR05BTF9UUkFQDQo+Pj4gaW5mcnVuOiBzdG9wX3BjID0gMHg0MDA1YzAN Cj4+PiBpbmZydW46IGRlbGF5ZWQgc29mdHdhcmUgYnJlYWtwb2ludCB0cmFw LCBpZ25vcmluZw0KPj4+IGluZnJ1bjogbm8gc3RlcHBpbmcsIGNvbnRpbnVl DQo+Pj4gaW5mcnVuOiByZXN1bWUgKHN0ZXA9MCwgc2lnbmFsPUdEQl9TSUdO QUxfMCksIHRyYXBfZXhwZWN0ZWQ9MCwgY3VycmVudCB0aHJlYWQgW3Byb2Nl c3MgMTQxOThdIGF0IDB4NDAwNWMwDQo+Pj4gaW5mcnVuOiBwcmVwYXJlX3Rv X3dhaXQNCj4+PiBpbmZydW46IHRhcmdldF93YWl0ICgtMS4wLjAsIHN0YXR1 cykgPQ0KPj4+IGluZnJ1bjogICAxNDE5OC4xNDE5OC4wIFtwcm9jZXNzIDE0 MTk4XSwNCj4+PiBpbmZydW46ICAgc3RhdHVzLT5raW5kID0gc3RvcHBlZCwg c2lnbmFsID0gR0RCX1NJR05BTF9UUkFQDQo+Pj4gLi4uDQo+Pj4gDQo+Pj4g Li4uIHdoaWNoIGlzIG5vdCB0aGUgY2FzZS4NCj4+PiANCj4+PiBJZiB0aGUg cHJvZ3JhbSBicmVha3BvaW50IGlzIG9uZSBHREIgcmVjb2duaXplcywgdGhl biBpdCB3aWxsIHN0b3Agd2hlbiBpdA0KPj4+IGhpdHMgaXQuDQo+Pj4gDQo+ Pj4gKGdkYikgeC9pICRwYw0KPj4+ID0+IDB4NDAwNWMwIDxwcm9ibGVtX2Z1 bmN0aW9uPjogYnJrICAgICAjMHgwDQo+Pj4gKGdkYikgYw0KPj4+IENvbnRp bnVpbmcuDQo+Pj4gaW5mcnVuOiBjbGVhcl9wcm9jZWVkX3N0YXR1c190aHJl YWQgKHByb2Nlc3MgMTQxOTMpDQo+Pj4gaW5mcnVuOiBwcm9jZWVkIChhZGRy PTB4ZmZmZmZmZmZmZmZmZmZmZiwgc2lnbmFsPUdEQl9TSUdOQUxfREVGQVVM VCkNCj4+PiBpbmZydW46IHByb2NlZWQ6IHJlc3VtaW5nIHByb2Nlc3MgMTQx OTMNCj4+PiBpbmZydW46IHJlc3VtZSAoc3RlcD0wLCBzaWduYWw9R0RCX1NJ R05BTF8wKSwgdHJhcF9leHBlY3RlZD0wLCBjdXJyZW50IHRocmVhZCBbcHJv Y2VzcyAxNDE5M10gYXQgMHg0MDA1YzANCj4+PiBpbmZydW46IGluZnJ1bl9h c3luYygxKQ0KPj4+IGluZnJ1bjogcHJlcGFyZV90b193YWl0DQo+Pj4gaW5m cnVuOiB0YXJnZXRfd2FpdCAoLTEuMC4wLCBzdGF0dXMpID0NCj4+PiBpbmZy dW46ICAgMTQxOTMuMTQxOTMuMCBbcHJvY2VzcyAxNDE5M10sDQo+Pj4gaW5m cnVuOiAgIHN0YXR1cy0+a2luZCA9IHN0b3BwZWQsIHNpZ25hbCA9IEdEQl9T SUdOQUxfVFJBUA0KPj4+IGluZnJ1bjogaGFuZGxlX2luZmVyaW9yX2V2ZW50 IHN0YXR1cy0+a2luZCA9IHN0b3BwZWQsIHNpZ25hbCA9IEdEQl9TSUdOQUxf VFJBUA0KPj4+IGluZnJ1bjogc3RvcF9wYyA9IDB4NDAwNWMwDQo+Pj4gaW5m cnVuOiByYW5kb20gc2lnbmFsIChHREJfU0lHTkFMX1RSQVApDQo+Pj4gaW5m cnVuOiBzdG9wX3dhaXRpbmcNCj4+PiBpbmZydW46IHN0b3BfYWxsX3RocmVh ZHMNCj4+PiBpbmZydW46IHN0b3BfYWxsX3RocmVhZHMsIHBhc3M9MCwgaXRl cmF0aW9ucz0wDQo+Pj4gaW5mcnVuOiAgIHByb2Nlc3MgMTQxOTMgbm90IGV4 ZWN1dGluZw0KPj4+IGluZnJ1bjogc3RvcF9hbGxfdGhyZWFkcywgcGFzcz0x LCBpdGVyYXRpb25zPTENCj4+PiBpbmZydW46ICAgcHJvY2VzcyAxNDE5MyBu b3QgZXhlY3V0aW5nDQo+Pj4gaW5mcnVuOiBzdG9wX2FsbF90aHJlYWRzIGRv bmUNCj4+PiANCj4+PiBQcm9ncmFtIHJlY2VpdmVkIHNpZ25hbCBTSUdUUkFQ LCBUcmFjZS9icmVha3BvaW50IHRyYXAuDQo+Pj4gcHJvYmxlbV9mdW5jdGlv biAoKSBhdCBicmtfMC5jOjcNCj4+PiA3ICAgICAgICBhc20oImJyayAlMFxu XHQiIDo6Im4iKDB4MCkpOw0KPj4+IGluZnJ1bjogaW5mcnVuX2FzeW5jKDAp DQo+Pj4gDQo+Pj4gT3RoZXJ3aXNlIEdEQiB3aWxsIGtlZXAgdHJ5aW5nIHRv IHJlc3VtZSB0aGUgaW5mZXJpb3IgYW5kIHdpbGwga2VlcA0KPj4+IHNlZWlu ZyB0aGUgU0lHVFJBUCdzLCB3aXRob3V0IHN0b3BwaW5nLg0KPj4+IA0KPj4+ IFRvIHRoZSB1c2VyIGl0IGFwcGVhcnMgR0RCIGhhcyBnb25lIGludG8gYW4g aW5maW5pdGUgbG9vcCwgaW50ZXJydXB0aWJsZSBvbmx5DQo+Pj4gYnkgQ3Ry bC1DLg0KPj4+IA0KPj4+IEFsc28sIHdpbmRiZyBzZWVtcyB0byB1c2UgYSBk aWZmZXJlbnQgdmFyaWF0aW9uIG9mIEFBcmNoNjQgYnJlYWtwb2ludCBjb21w YXJlZA0KPj4+IHRvIEdEQi4gVGhpcyBjYXVzZXMgcHJvYmxlbXMgd2hlbiBk ZWJ1Z2dpbmcgV2luZG93cyBvbiBBUk0gYmluYXJpZXMsIHdoZW4NCj4+PiBw cm9ncmFtIGJyZWFrcG9pbnRzIGFyZSBiZWluZyB1c2VkLg0KPj4+IA0KPj4+ IFRoZSBwcm9wb3NlZCBwYXRjaCBjcmVhdGVzIGEgbmV3IGdkYmFyY2ggbWV0 aG9kIChnZGJhcmNoX2luc25faXNfYnJlYWtwb2ludCkNCj4+PiB0aGF0IHRl bGxzIEdEQiB3aGV0aGVyIHRoZSB1bmRlcmx5aW5nIGluc3RydWN0aW9uIGlz IGEgYnJlYWtwb2ludCBpbnN0cnVjdGlvbg0KPj4+IG9yIG5vdC4NCj4+PiAN Cj4+PiBUaGlzIGlzIG1vcmUgZ2VuZXJhbCB0aGFuIG9ubHkgY2hlY2tpbmcg Zm9yIHRoZSBpbnN0cnVjdGlvbiBHREIgdXNlcyBhcw0KPj4+IGJyZWFrcG9p bnQuDQo+Pj4gDQo+Pj4gVGhlIGV4aXN0aW5nIGxvZ2ljIGlzIHN0aWxsIHBy ZXNlcnZlZCBmb3IgdGFyZ2V0cyB0aGF0IGRvIG5vdCBpbXBsZW1lbnQgdGhp cw0KPj4+IG5ldyBnZGJhcmNoIG1ldGhvZC4NCj4+PiANCj4+PiBUaGUgZW5k IHJlc3VsdCBpcyBsaWtlIHNvOg0KPj4+IA0KPj4+IChnZGIpIHgvaSAkcGMN Cj4+PiA9PiAweDQwMDVjMCA8cHJvYmxlbV9mdW5jdGlvbj46IGJyayAgICAg IzB4OTBmDQo+Pj4gKGdkYikgYw0KPj4+IENvbnRpbnVpbmcuDQo+Pj4gaW5m cnVuOiBjbGVhcl9wcm9jZWVkX3N0YXR1c190aHJlYWQgKHByb2Nlc3MgMTY0 MTcpDQo+Pj4gaW5mcnVuOiBwcm9jZWVkIChhZGRyPTB4ZmZmZmZmZmZmZmZm ZmZmZiwgc2lnbmFsPUdEQl9TSUdOQUxfREVGQVVMVCkNCj4+PiBpbmZydW46 IHByb2NlZWQ6IHJlc3VtaW5nIHByb2Nlc3MgMTY0MTcNCj4+PiBpbmZydW46 IHJlc3VtZSAoc3RlcD0wLCBzaWduYWw9R0RCX1NJR05BTF8wKSwgdHJhcF9l eHBlY3RlZD0wLCBjdXJyZW50IHRocmVhZCBbcHJvY2VzcyAxNjQxN10gYXQg MHg0MDA1YzANCj4+PiBpbmZydW46IGluZnJ1bl9hc3luYygxKQ0KPj4+IGlu ZnJ1bjogcHJlcGFyZV90b193YWl0DQo+Pj4gaW5mcnVuOiB0YXJnZXRfd2Fp dCAoLTEuMC4wLCBzdGF0dXMpID0NCj4+PiBpbmZydW46ICAgMTY0MTcuMTY0 MTcuMCBbcHJvY2VzcyAxNjQxN10sDQo+Pj4gaW5mcnVuOiAgIHN0YXR1cy0+ a2luZCA9IHN0b3BwZWQsIHNpZ25hbCA9IEdEQl9TSUdOQUxfVFJBUA0KPj4+ IGluZnJ1bjogaGFuZGxlX2luZmVyaW9yX2V2ZW50IHN0YXR1cy0+a2luZCA9 IHN0b3BwZWQsIHNpZ25hbCA9IEdEQl9TSUdOQUxfVFJBUA0KPj4+IGluZnJ1 bjogc3RvcF9wYyA9IDB4NDAwNWMwDQo+Pj4gaW5mcnVuOiByYW5kb20gc2ln bmFsIChHREJfU0lHTkFMX1RSQVApDQo+Pj4gaW5mcnVuOiBzdG9wX3dhaXRp bmcNCj4+PiBpbmZydW46IHN0b3BfYWxsX3RocmVhZHMNCj4+PiBpbmZydW46 IHN0b3BfYWxsX3RocmVhZHMsIHBhc3M9MCwgaXRlcmF0aW9ucz0wDQo+Pj4g aW5mcnVuOiAgIHByb2Nlc3MgMTY0MTcgbm90IGV4ZWN1dGluZw0KPj4+IGlu ZnJ1bjogc3RvcF9hbGxfdGhyZWFkcywgcGFzcz0xLCBpdGVyYXRpb25zPTEN Cj4+PiBpbmZydW46ICAgcHJvY2VzcyAxNjQxNyBub3QgZXhlY3V0aW5nDQo+ Pj4gaW5mcnVuOiBzdG9wX2FsbF90aHJlYWRzIGRvbmUNCj4+PiANCj4+PiBQ cm9ncmFtIHJlY2VpdmVkIHNpZ25hbCBTSUdUUkFQLCBUcmFjZS9icmVha3Bv aW50IHRyYXAuDQo+Pj4gcHJvYmxlbV9mdW5jdGlvbiAoKSBhdCBicmsuYzo3 DQo+Pj4gNyAgICAgICAgYXNtKCJicmsgJTBcblx0IiA6OiJuIigweDkwMCAr IDB4ZikpOw0KPj4+IGluZnJ1bjogaW5mcnVuX2FzeW5jKDApDQo+Pj4gDQo+ Pj4gRG9lcyB0aGlzIGNoYW5nZSBsb29rIG9rPw0KPj4+IA0KPj4+IGdkYi9D aGFuZ2VMb2c6DQo+Pj4gDQo+Pj4gMjAxOS0xMi0yMyAgTHVpcyBNYWNoYWRv ICA8bHVpcy5tYWNoYWRvQGxpbmFyby5vcmc+DQo+Pj4gDQo+Pj4gCSogYWFy Y2g2NC10ZGVwLmMgKEJSS19JTlNOX01BU0spOiBEZWZpbmUgdG8gMHhkNDIw MDAwMC4NCj4+PiAJKGFhcmNoNjRfaW5zbl9pc19icmVha3BvaW50KTogTmV3 IGZ1bmN0aW9uLg0KPj4+IAkoYWFyY2g2NF9nZGJhcmNoX2luaXQpOiBTZXQg Z2RiYXJjaF9pbnNuX2lzX2JyZWFrcG9pbnQgaG9vay4NCj4+PiAJKiBhcmNo LXV0aWxzLmMgKGRlZmF1bHRfaW5zbl9pc19icmVha3BvaW50KTogTmV3IGZ1 bmN0aW9uLg0KPj4+IAkqIGFyY2gtdXRpbHMuaCAoZGVmYXVsdF9pbnNuX2lz X2JyZWFrcG9pbnQpOiBOZXcgcHJvdG90eXBlLg0KPj4+IAkqIGJyZWFrcG9p bnQuYyAocHJvZ3JhbV9icmVha3BvaW50X2hlcmUpOiBVcGRhdGVkIHRvIHVz ZQ0KPj4+IAkgIGdkYmFyY2hfaW5zbl9pc19icmVha3BvaW50Lg0KPj4+IAlV cGRhdGUgZG9jdW1lbnRhdGlvbiB0byBjbGFyaWZ5IGJlaGF2aW9yLg0KPj4+ IAkqIGdkYmFyY2guYzogUmVnZW5lcmF0ZS4NCj4+PiAJKiBnZGJhcmNoLmg6 IFJlZ2VuZXJhdGUuDQo+Pj4gCSogZ2RiYXJjaC5zaCAoZ2RiYXJjaF9pbnNu X2lzX2JyZWFrcG9pbnQpOiBOZXcgbWV0aG9kLg0KPj4+IA0KPj4+IENoYW5n ZS1JZDogSTk2ZWIyNzE1MTQ0MmY0MzU1NjBhNThjODdlYWM0OGIwZjY4NDMy YmMNCj4+PiAtLS0NCj4+PiBnZGIvYWFyY2g2NC10ZGVwLmMgfCAyNSArKysr KysrKysrKysrKysrKysrKysrKysrDQo+Pj4gZ2RiL2FyY2gtdXRpbHMuYyAg IHwgIDcgKysrKysrKw0KPj4+IGdkYi9hcmNoLXV0aWxzLmggICB8ICAzICsr Kw0KPj4+IGdkYi9icmVha3BvaW50LmMgICB8IDE5ICsrKysrKysrKysrKysr LS0tLS0NCj4+PiBnZGIvZ2RiYXJjaC5jICAgICAgfCAyMyArKysrKysrKysr KysrKysrKysrKysrKw0KPj4+IGdkYi9nZGJhcmNoLmggICAgICB8ICA3ICsr KysrKysNCj4+PiBnZGIvZ2RiYXJjaC5zaCAgICAgfCAgNCArKysrDQo+Pj4g NyBmaWxlcyBjaGFuZ2VkLCA4MyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9u cygtKQ0KPj4+IA0KPj4gRG8geW91IGhhdmUgYSB0ZXN0IGNhc2UgZm9yIHRo aXM/IEl0IGNvdWxkIGdvIGluIHRoZSBnZGIuYXJjaC8gZGlyZWN0b3J5Lg0K Pj4gSXTigJlkIGJlIGZhaXJseSBlYXN5IHRvIGNoZWNrIGFsbCB0aGUgZGlm ZmVyZW50IGJyayBwYXR0ZXJucy4NCj4gDQo+IEknbGwgd29yayBvbiB0aGlz LiBJJ20gdGhpbmtpbmcgd2UgY291bGQgYXV0by1nZW5lcmF0ZSBhIG51bWJl ciBvZiBicmsgcGF0dGVybnMgYW5kIHZlcmlmeSB3ZSBjYW4gY29udGludWUg YW5kIGhpdCBlYWNoIG9mIHRoZW0uDQo+IA0KPj4+IGRpZmYgLS1naXQgYS9n ZGIvYWFyY2g2NC10ZGVwLmMgYi9nZGIvYWFyY2g2NC10ZGVwLmMNCj4+PiBp bmRleCAxZDVmYjIwMDFkLi5jNjkzNjFkNGVhIDEwMDY0NA0KPj4+IC0tLSBh L2dkYi9hYXJjaDY0LXRkZXAuYw0KPj4+ICsrKyBiL2dkYi9hYXJjaDY0LXRk ZXAuYw0KPj4+IEBAIC0xMjAxLDYgKzEyMDEsMjggQEAgYWFyY2g2NF9leGVj dXRlX2R3YXJmX2NmYV92ZW5kb3Jfb3AgKHN0cnVjdCBnZGJhcmNoICpnZGJh cmNoLCBnZGJfYnl0ZSBvcCwNCj4+PiAgIHJldHVybiBmYWxzZTsNCj4+PiB9 DQo+Pj4gDQo+Pj4gKyNkZWZpbmUgQlJLX0lOU05fTUFTSyAweGQ0MjAwMDAw DQo+Pj4gKw0KPj4+ICsvKiBJbXBsZW1lbnRhdGlvbiBvZiBnZGJhcmNoX2lu c25faXNfYnJlYWtwb2ludCBmb3IgYWFyY2g2NC4gICovDQo+Pj4gKw0KPj4+ ICtzdGF0aWMgYm9vbA0KPj4+ICthYXJjaDY0X2luc25faXNfYnJlYWtwb2lu dCAoZ2RiYXJjaCAqZ2RiYXJjaCwNCj4+PiArCQkJICAgIGNvbnN0IGdkYl9i eXRlICppbnNuLA0KPj4+ICsJCQkgICAgdW5zaWduZWQgaW50IGluc25fc2l6 ZSkNCj4+PiArew0KPj4+ICsgIGdkYl9hc3NlcnQgKGluc24gIT0gbnVsbHB0 cik7DQo+Pj4gKw0KPj4+ICsgIHVpbnQzMl90IGk7DQo+Pj4gKw0KPj4+ICsg IGkgPSAodWludDMyX3QpIGV4dHJhY3RfdW5zaWduZWRfaW50ZWdlciAoaW5z biwgaW5zbl9zaXplLA0KPj4+ICsJCQkJCSAgIGdkYmFyY2hfYnl0ZV9vcmRl ciAoZ2RiYXJjaCkpOw0KPj4+ICsNCj4+PiArICAvKiBDaGVjayBpZiBJTlNO IGlzIGEgQlJLIGluc3RydWN0aW9uIHBhdHRlcm4uICBUaGVyZSBhcmUgbXVs dGlwbGUgY2hvaWNlcw0KPj4+ICsgICAgIG9mIHN1Y2ggaW5zdHJ1Y3Rpb25z IHdpdGggZGlmZmVyZW50IGltbWVkaWF0ZSB2YWx1ZXMuICBEaWZmZXJlbnQg T1MnIG1heQ0KPj4+ICsgICAgIHVzZSBhIGRpZmZlcmVudCB2YXJpYXRpb24s IGJ1dCB0aGV5IGhhdmUgdGhlIHNhbWUgb3V0Y29tZS4gICovDQo+Pj4gKyAg cmV0dXJuIChpICYgQlJLX0lOU05fTUFTSykgPT0gQlJLX0lOU05fTUFTSzsN Cj4+PiArfQ0KPj4+ICsNCj4+PiAvKiBXaGVuIGFyZ3VtZW50cyBtdXN0IGJl IHB1c2hlZCBvbnRvIHRoZSBzdGFjaywgdGhleSBnbyBvbiBpbiByZXZlcnNl DQo+Pj4gICAgb3JkZXIuICBUaGUgY29kZSBiZWxvdyBpbXBsZW1lbnRzIGEg RklMTyAoc3RhY2spIHRvIGRvIHRoaXMuICAqLw0KPj4+IA0KPj4+IEBAIC0z MzU3LDYgKzMzNzksOSBAQCBhYXJjaDY0X2dkYmFyY2hfaW5pdCAoc3RydWN0 IGdkYmFyY2hfaW5mbyBpbmZvLCBzdHJ1Y3QgZ2RiYXJjaF9saXN0ICphcmNo ZXMpDQo+Pj4gICBzZXRfZ2RiYXJjaF9leGVjdXRlX2R3YXJmX2NmYV92ZW5k b3Jfb3AgKGdkYmFyY2gsDQo+Pj4gCQkJCQkgICBhYXJjaDY0X2V4ZWN1dGVf ZHdhcmZfY2ZhX3ZlbmRvcl9vcCk7DQo+Pj4gDQo+Pj4gKyAgLyogUGVybWFu ZW50L1Byb2dyYW0gYnJlYWtwb2ludCBoYW5kbGluZy4gICovDQo+Pj4gKyAg c2V0X2dkYmFyY2hfaW5zbl9pc19icmVha3BvaW50IChnZGJhcmNoLCBhYXJj aDY0X2luc25faXNfYnJlYWtwb2ludCk7DQo+Pj4gKw0KPj4+ICAgLyogQWRk IHNvbWUgZGVmYXVsdCBwcmVkaWNhdGVzLiAgKi8NCj4+PiAgIGZyYW1lX3Vu d2luZF9hcHBlbmRfdW53aW5kZXIgKGdkYmFyY2gsICZhYXJjaDY0X3N0dWJf dW53aW5kKTsNCj4+PiAgIGR3YXJmMl9hcHBlbmRfdW53aW5kZXJzIChnZGJh cmNoKTsNCj4+PiBkaWZmIC0tZ2l0IGEvZ2RiL2FyY2gtdXRpbHMuYyBiL2dk Yi9hcmNoLXV0aWxzLmMNCj4+PiBpbmRleCBhMWEwMDNmOTFmLi45OWM5ZjI4 MWJlIDEwMDY0NA0KPj4+IC0tLSBhL2dkYi9hcmNoLXV0aWxzLmMNCj4+PiAr KysgYi9nZGIvYXJjaC11dGlscy5jDQo+Pj4gQEAgLTg3Niw2ICs4NzYsMTMg QEAgaW50IGRlZmF1bHRfaW5zbl9pc19qdW1wIChzdHJ1Y3QgZ2RiYXJjaCAq Z2RiYXJjaCwgQ09SRV9BRERSIGFkZHIpDQo+Pj4gICByZXR1cm4gMDsNCj4+ PiB9DQo+PiBBZGQgIi8qIFNlZSBhcmNoLXV0aWxzLmguICAqLyIgLi4uDQo+ IA0KPiBGaXhlZC4NCj4gDQo+Pj4gDQo+Pj4gK2Jvb2wgZGVmYXVsdF9pbnNu X2lzX2JyZWFrcG9pbnQgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLA0KPj4+ ICsJCQkJIGNvbnN0IGdkYl9ieXRlICAqaW5zbiwNCj4+PiArCQkJCSB1bnNp Z25lZCBpbnQgaW5zbl9zaXplKQ0KPj4+ICt7DQo+Pj4gKyAgcmV0dXJuIGZh bHNlOw0KPj4gSSBkb27igJl0IGxpa2UgdGhhdCB0aGlzIGlzIGp1c3QgcmV0 dXJuaW5nIGZhbHNlLCBhcyBpdOKAmXMgbm90IHJlYWxseSBkb2luZyB3aGF0 IHRoZSBmdW5jdGlvbiBuYW1lIHNheXMuDQo+PiBIb3cgYWJvdXQgaWYgdGhl IGZ1bmN0aW9uIGRpZCB0aGlzOg0KPj4gICByZXR1cm4gKG1lbWNtcCAodGFy Z2V0X21lbSwgYnBvaW50LCBsZW4pID09IDApOw0KPj4gVGhlbiByZW1vdmUg dGhlIG1lbWNtcCBmcm9tIHByb2dyYW1fYnJlYWtwb2ludF9oZXJlX3AuDQo+ IA0KPiBJIGFncmVlIGl0IHdvdWxkIGJlIGNsZWFuZXIsIGJ1dCAuLi4NCj4g DQo+PiBZb3XigJlsbCBwcm9iYWJseSBoYXZlIHRvIG1vdmUgdGhlIGNhbGwg dG8gZ2RiYXJjaF9icmVha3BvaW50X2Zyb21fcGMgaW50byBoZXJlIHRvby4N Cj4gDQo+IC4uLiB0aGlzIGRlcGVuZHMgb24gY2FsbGluZyBnZGJhcmNoX2Jy ZWFrcG9pbnRfZnJvbV9wYyB0byBmZXRjaCBicG9pbnQsIGFuZCBnZGJhcmNo X2JyZWFrcG9pbnRfZnJvbV9wYyByZXF1aXJlcyB0aGUgYWRkcmVzcyBpbmZv cm1hdGlvbiBzbyBpdCBjYW4gZGV0ZXJtaW5lIHRoZSBicmVha3BvaW50IGtp bmQuDQo+IA0KPiBQYXNzaW5nIGluIHRoZSBhZGRyZXNzIGlzIGEgYml0IG91 dCBvZiBzY29wZSBmb3Igd2hhdCB0aGUgZnVuY3Rpb24gaXMgc3VwcG9zZWQg dG8gZG8gKHZlcmlmeSBpZiBhIHBhcnRpY3VsYXIgaW5zdHJ1Y3Rpb24gaXMg YSBicmVha3BvaW50KS4NCj4gDQo+IEkgZG9uJ3QgaGF2ZSBhIHN0cm9uZyBv YmplY3Rpb24gdG93YXJkcyBwYXNzaW5nIGluIHRoZSBhZGRyZXNzIChvciBO VUxMIGlmIG5vIGFkZHJlc3MpIGlmIG90aGVycyBhcmUgT0sgd2l0aCBpdC4N Cg0KSG93IGFib3V0IHJlcGxhY2luZyBwcm9ncmFtX2JyZWFrcG9pbnRfaGVy ZV9wIHdpdGggDQpnZGJhcmNoX3Byb2dyYW1fYnJlYWtwb2ludF9oZXJlX3Ao c3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIENPUkVfQUREUiBhZGRyZXNzKSA/ DQoNCmRlZmF1bHRfcHJvZ3JhbV9icmVha3BvaW50X2hlcmVfcCB3b3VsZCBi ZSBhbiBleGFjdCBjb3B5IG9mIHRoZSBleGlzdGluZyBwcm9ncmFtX2JyZWFr cG9pbnRfaGVyZV9wLg0KDQphYXJjaDY0X3Byb2dyYW1fYnJlYWtwb2ludF9o ZXJlX3Agd291bGQgZG8gdGhlIGNvcHkgdG8gbWVtb3J5IHRoZW4gdGhlIHNh bWUgYXMgYWFyY2g2NF9pbnNuX2lzX2JyZWFrcG9pbnQuDQoNCg0KPiANCj4+ PiArfQ0KPj4+ICsNCj4+PiB2b2lkDQo+Pj4gZGVmYXVsdF9za2lwX3Blcm1h bmVudF9icmVha3BvaW50IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlKQ0K Pj4+IHsNCj4+PiBkaWZmIC0tZ2l0IGEvZ2RiL2FyY2gtdXRpbHMuaCBiL2dk Yi9hcmNoLXV0aWxzLmgNCj4+PiBpbmRleCA0OGZmM2JiOWExLi43N2ZmZTgx OTBjIDEwMDY0NA0KPj4+IC0tLSBhL2dkYi9hcmNoLXV0aWxzLmgNCj4+PiAr KysgYi9nZGIvYXJjaC11dGlscy5oDQo+Pj4gQEAgLTIyNyw2ICsyMjcsOSBA QCBleHRlcm4gaW50IGRlZmF1bHRfcmV0dXJuX2luX2ZpcnN0X2hpZGRlbl9w YXJhbV9wIChzdHJ1Y3QgZ2RiYXJjaCAqLA0KPj4+IGV4dGVybiBpbnQgZGVm YXVsdF9pbnNuX2lzX2NhbGwgKHN0cnVjdCBnZGJhcmNoICosIENPUkVfQURE Uik7DQo+Pj4gZXh0ZXJuIGludCBkZWZhdWx0X2luc25faXNfcmV0IChzdHJ1 Y3QgZ2RiYXJjaCAqLCBDT1JFX0FERFIpOw0KPj4+IGV4dGVybiBpbnQgZGVm YXVsdF9pbnNuX2lzX2p1bXAgKHN0cnVjdCBnZGJhcmNoICosIENPUkVfQURE Uik7DQo+PiAuLi4gcGx1cyBhIGJyaWVmIGNvbW1lbnQgaGVyZS4NCj4+ID4+ ICtleHRlcm4gYm9vbCBkZWZhdWx0X2luc25faXNfYnJlYWtwb2ludCAoc3Ry dWN0IGdkYmFyY2ggKmdkYmFyY2gsDQo+Pj4gKwkJCQkJY29uc3QgZ2RiX2J5 dGUgKmluc24sDQo+Pj4gKwkJCQkJdW5zaWduZWQgaW50IGluc25fc2l6ZSk7 DQo+Pj4gDQo+Pj4gLyogRG8tbm90aGluZyB2ZXJzaW9uIG9mIHZzeXNjYWxs X3JhbmdlLiAgUmV0dXJucyBmYWxzZS4gICovDQo+Pj4gDQo+IA0KPiBGaXhl ZCBhcyB3ZWxsLg0KDQo= >From gdb-patches-return-162898-listarch-gdb-patches=sources.redhat.com@sourceware.org Thu Jan 09 16:58:37 2020 Return-Path: Delivered-To: listarch-gdb-patches@sources.redhat.com Received: (qmail 85267 invoked by alias); 9 Jan 2020 16:58:37 -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 85257 invoked by uid 89); 9 Jan 2020 16:58:36 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=dying, Alves X-HELO: us-smtp-1.mimecast.com Received: from us-smtp-1.mimecast.com (HELO us-smtp-1.mimecast.com) (207.211.31.81) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 09 Jan 2020 16:58:35 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1578589113; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=rSl9fDw8fui430ha+8PDAxCvNmnC0y8VXTpBS+RDUIE=; b=Ahk4HRNkHIWD3bL3DMh1RsV7FX8FAM1Qlmp2jrH9zmP+H60FFgohY7ynZzzdZ75Gpw2XoA DXnQ+xLLe1T2ZxuwVw47Is3mX1eZI9kZCSn0eX68Mm2QLqVp2C1hH9KuTwcKTfQ/veHhtD 26eQivzySVMDo5ABitR75NRBf1LZqIE= Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-17-bvEKVbNaPiOrW6N2huyz8A-1; Thu, 09 Jan 2020 11:58:30 -0500 Received: by mail-wr1-f69.google.com with SMTP id 90so3091051wrq.6 for ; Thu, 09 Jan 2020 08:58:29 -0800 (PST) Return-Path: Received: from ?IPv6:2001:8a0:f913:f700:56ee:75ff:fe8d:232b? ([2001:8a0:f913:f700:56ee:75ff:fe8d:232b]) by smtp.gmail.com with ESMTPSA id v22sm3382330wml.11.2020.01.09.08.58.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 09 Jan 2020 08:58:28 -0800 (PST) Subject: Re: [review v2] infrun: handle already-exited threads when attempting to stop To: "Aktemur, Tankut Baris" References: <20191209150906.A35B620AF6@gnutoolchain-gerrit.osci.io> Cc: gdb-patches@sourceware.org, Luis Machado , gnutoolchain-gerrit@osci.io From: Pedro Alves Message-ID: <9512ee17-66dc-3463-4735-b1907bca34c6@redhat.com> Date: Thu, 09 Jan 2020 16:58:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1 MIME-Version: 1.0 In-Reply-To: <20191209150906.A35B620AF6@gnutoolchain-gerrit.osci.io> X-Mimecast-Spam-Score: 0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-SW-Source: 2020-01/txt/msg00212.txt.bz2 Content-length: 6562 Hi, (I tried to reply via gerrit, but I couldn't find how to hit "Quote" to quote/reply to this message of yours -- seems like via the web ui you can only reply to the last comment in a thread, which in this case is a ping, not the message I intended to quote...) Sorry for the delay, and thanks for the ping. I've been thinking on and off about this. Below you'll find my current thoughts. On 12/9/19 3:09 PM, Tankut Baris Aktemur (Code Review) wrote: > I'd like to ask for your opinion on making the second exit event > pending. One problem is, because the event has not been reported to > the user yet, the user still thinks that the inferior is alive. So, > after getting the prompt because of the first exit event, they may be > tempted to do "info threads" or switch to the not-yet-reported- > inferior and inspect its state. This triggers a query (e.g. of > registers) on the process that is already gone. I tried the following > scenario with the current master branch (the patch that I proposed was > not applied): > > ~~~ > $ gdb ./a.out > (gdb) maint set target-non-stop off > (gdb) start > ... > (gdb) add-inferior -exec ./a.out > [New inferior 2] > Added inferior 2 > ... > (gdb) inferior 2 > [Switching to inferior 2 [] (/tmp/a.out)] > (gdb) start > ... > (gdb) set schedule-multiple on > (gdb) c > Continuing. > [Inferior 2 (process 16331) exited normally] > (gdb) i inferiors > Num Description Executable > 1 process 16137 /tmp/a.out > * 2 /tmp/a.out > (gdb) inferior 1 > [Switching to inferior 1 [process 16137] (/tmp/a.out)] > [Switching to thread 1.1 (process 16137)] > Couldn't get registers: No such process. > (gdb) i threads > Id Target Id Frame > Couldn't get registers: No such process. > (gdb) c > Continuing. > Couldn't get registers: No such process. > ~~~ > > If I save the exit event in my patch as a pending event (and omit > 'maint set target-non-stop off'), I get essentially the same problem. > What is the expected GDB behavior here? Would it be alright to > actually print both exit events, followed by the gdb-prompt, where the > user can now query $_exitcode or $_exitsignal by switching between > inferiors, assuming those special variables are set correctly per > inferior? I'm really not sure about that. As you've seen, this happens in true all-stop too, which can't report multiple events at the same time, so I think from that angle alone, GDB should cope better with it. Plus, this can happen even if an inferior stopped for some other event while at the same time some other inferior exits. Say, inferior 1 hits a breakpoint, and while stopping everything, inferior 2 exits. And GDB happens to report the breakpoint hit first. And now the user does "info threads" and sees the "No such process" errors. You could maybe think, that then maybe we should prioritize inferior exits over breakpoint hits. But then, what if inferior 1 stops for a breakpoint, gdb manages to stop all threads without inferior 2 exiting, and then a SIGKILL is sent to the supposedly-stopped inferior, from outside GDB? Or to make it even simpler, that SIGKILL use case can even happen in single-inferior debugging. Or, in "set non-stop on" mode, the inferior is running and you so "info threads" just between the process dying, and GDB getting the SIGCHLD and collecting the ptrace event. So I think that the state gets into where the inferior dies before the inferior exit event is reported to the user is just something that GDB needs to cope with well. I.e., report the failures to read registers, in "info threads", "print" etc., and importantly -- _be sure to not get into a state where the user is stuck_. The "not get stuck" part is where I think we should improve things. Your example already shows where we need improvement, in the the last "c". A simplified version, using an external SIGKILL is: $ gdb --args /usr/bin/tail -f /dev/null GNU gdb (GDB) 10.0.50.20200106-git ... Program received signal SIGINT, Interrupt. 0x00007ffff7b08881 in __GI___libc_read (fd=4, buf=0x555555766410, nbytes=26) at ../sysdeps/unix/sysv/linux/read.c:26 26 return SYSCALL_CANCEL (read, fd, buf, nbytes); (gdb) info inferiors Num Description Executable * 1 process 9425 /usr/bin/tail (gdb) shell kill -9 9425 (gdb) flushregs Register cache flushed. Couldn't get registers: No such process. (gdb) info threads Id Target Id Frame Couldn't get registers: No such process. (gdb) c Continuing. Couldn't get registers: No such process. (gdb) This error comes from the regcache_read_pc call from within infrun.c:proceed: ... #4 0x000000000097e04e in perror_with_name (string=0xb213e9 "Couldn't get registers") at /home/pedro/gdb/binutils-gdb/src/gdb/utils.c:612 #5 0x0000000000452156 in amd64_linux_nat_target::fetch_registers (this=0x11a64b0 , regcache=0x1eac160, regnum=16) at /home/pedro/gdb/binutils-gdb/src/gdb/amd64-linux-nat.c:225 #6 0x0000000000901cc4 in target_fetch_registers (regcache=0x1eac160, regno=16) at /home/pedro/gdb/binutils-gdb/src/gdb/target.c:3427 #7 0x0000000000829f94 in regcache::raw_update (this=0x1eac160, regnum=16) at /home/pedro/gdb/binutils-gdb/src/gdb/regcache.c:471 #8 0x000000000082a039 in readable_regcache::raw_read (this=0x1eac160, regnum=16, buf=0x7fffffffcc00 "\302%") at /home/pedro/gdb/binutils-gdb/src/gdb/regcache.c:485 #9 0x000000000082a371 in readable_regcache::cooked_read (this=0x1eac160, regnum=16, buf=0x7fffffffcc00 "\302%") at /home/pedro/gdb/binutils-gdb/src/gdb/regcache.c:577 #10 0x000000000082eefd in readable_regcache::cooked_read (this=0x1eac160, regnum=16, val=0x7fffffffcca8) at /home/pedro/gdb/binutils-gdb/src/gdb/regcache.c:664 #11 0x000000000082a7d8 in regcache_cooked_read_unsigned (regcache=0x1eac160, regnum=16, val=0x7fffffffcca8) at /home/pedro/gdb/binutils-gdb/src/gdb/regcache.c:678 #12 0x000000000082bcf5 in regcache_read_pc (regcache=0x1eac160) at /home/pedro/gdb/binutils-gdb/src/gdb/regcache.c:1182 #13 0x00000000006e6f62 in proceed (addr=0xffffffffffffffff, siggnal=GDB_SIGNAL_DEFAULT) at /home/pedro/gdb/binutils-gdb/src/gdb/infrun.c:2855 #14 0x00000000006d7af6 in continue_1 (all_threads=0) at /home/pedro/gdb/binutils-gdb/src/gdb/infcmd.c:804 ... I think PTRACE_EVENT_EXIT on Linux could help with at least some of the use cases on Linux, but still, GDB should cope better on systems that do not have that feature. Thanks, Pedro Alves