From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 66234 invoked by alias); 1 Feb 2019 11:20:42 -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 66220 invoked by uid 89); 1 Feb 2019 11:20:42 -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,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=Hx-languages-length:3896 X-HELO: EUR03-AM5-obe.outbound.protection.outlook.com Received: from mail-eopbgr30061.outbound.protection.outlook.com (HELO EUR03-AM5-obe.outbound.protection.outlook.com) (40.107.3.61) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 01 Feb 2019 11:20:40 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FwWW6PKPqabOYyR1ZEmLqRrJ5/3p5YgcrKfcaB4qd9Q=; b=gaPHlRgOAwHPcstitz+DBk5HZkp+vfUy6YAbzP3vursR1AwP8ep298hGCPzpT6uc1YQufQNdG3kVFNyw2YkhK6egOR79/JQQA7cx4iYC3tsaTZ1mOoHLq9zwcMI16BM2KrERbe5YSQ5UIY2upQNU+ku1rIgxZ7HiRDc7sxTcj00= Received: from DB6PR0802MB2133.eurprd08.prod.outlook.com (10.172.227.22) by DB6PR0802MB2471.eurprd08.prod.outlook.com (10.172.250.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1580.16; Fri, 1 Feb 2019 11:20:37 +0000 Received: from DB6PR0802MB2133.eurprd08.prod.outlook.com ([fe80::acd7:a958:2aaa:562e]) by DB6PR0802MB2133.eurprd08.prod.outlook.com ([fe80::acd7:a958:2aaa:562e%5]) with mapi id 15.20.1580.017; Fri, 1 Feb 2019 11:20:37 +0000 From: Alan Hayward To: Pedro Alves CC: "gdb-patches@sourceware.org" , nd Subject: Re: [PATCH] gdbserver: When attaching, add process before lwps Date: Fri, 01 Feb 2019 11:20:00 -0000 Message-ID: <7F0653B2-0EE2-4242-BE91-C40B055FD169@arm.com> References: <20190125104834.2595-1-alan.hayward@arm.com> <0e75277b-fa80-129d-e82b-3f854bb33124@redhat.com> In-Reply-To: <0e75277b-fa80-129d-e82b-3f854bb33124@redhat.com> authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alan.Hayward@arm.com; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-IsSubscribed: yes X-SW-Source: 2019-02/txt/msg00001.txt.bz2 DQoNCj4gT24gMjUgSmFuIDIwMTksIGF0IDE4OjIzLCBQZWRybyBBbHZlcyA8 cGFsdmVzQHJlZGhhdC5jb20+IHdyb3RlOg0KPiANCj4gT24gMDEvMjUvMjAx OSAxMDo0OCBBTSwgQWxhbiBIYXl3YXJkIHdyb3RlOg0KPj4gVGhlIHJlY2Vu dCBCUC9XUCBjaGFuZ2VzIGZvciBBQXJjaDY0IHN3YXBwaW5nIHRoZSBvcmRl ciBpbiBhZGRfbHdwKCkNCj4+IHNvIHRoYXQgdGhlIHByb2Nlc3Mgd2FzIGFk ZGVkIGJlZm9yZSB0aGUgbHdwLiBUaGlzIHdhcyBkdWUgdG8gdGhlIGx3cA0K Pj4gY3JlYXRpb24gcmVxdWlyaW5nIHRoZSBwcm9jZXNzIGRhdGEuDQo+PiAN Cj4+IFRoaXMgYWxzbyBuZWVkcyBjaGFuZ2luZyBpbiBsaW51eF9hdHRhY2go KS4NCj4+IA0KPj4gRml4ZXMgZ2RiLnNlcnZlci9leHQtYXR0YWNoLmV4cCBv biBBYXJjaDY0Lg0KPj4gDQo+PiAoVGhpcyByZWdyZXNzaW9uIHdhcyBoaWRk ZW4gZHVlIHRvIHRoZSByYWN5IG5hdHVyZSBvZiB0aGUgZ2RiLnNlcnZlcg0K Pj4gdGVzdHMgLSBub3cgdGhleSBhcmUgbm8gbG9uZ2VyIHJhY3kgaXQnbGwg YmUgZWFzaWVyIHRvIHNwb3QuIEFsc28NCj4+IGNoZWNrZWQgWDg2KS4NCj4+ IA0KPj4gZ2RiL2dkYnNlcnZlci9DaGFuZ2VMb2c6DQo+PiANCj4+IDIwMTkt MDEtMjUgIEFsYW4gSGF5d2FyZCAgPGFsYW4uaGF5d2FyZEBhcm0uY29tPg0K Pj4gDQo+PiAJKiBsaW51eC1sb3cuYyAobGludXhfYXR0YWNoKTogQWRkIHBy b2Nlc3MgYmVmb3JlIGx3cC4NCj4gDQo+PiAtLS0NCj4+IGdkYi9nZGJzZXJ2 ZXIvbGludXgtbG93LmMgfCA0ICsrLS0NCj4+IDEgZmlsZSBjaGFuZ2VkLCAy IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pDQo+PiANCj4+IGRpZmYg LS1naXQgYS9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jIGIvZ2RiL2dkYnNl cnZlci9saW51eC1sb3cuYw0KPj4gaW5kZXggMTdjY2UyNGQ3Ni4uMWFiMmNm YjFlYiAxMDA2NDQNCj4+IC0tLSBhL2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93 LmMNCj4+ICsrKyBiL2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMNCj4+IEBA IC0xMTg4LDYgKzExODgsOCBAQCBsaW51eF9hdHRhY2ggKHVuc2lnbmVkIGxv bmcgcGlkKQ0KPj4gICBwdGlkX3QgcHRpZCA9IHB0aWRfdCAocGlkLCBwaWQs IDApOw0KPj4gICBpbnQgZXJyOw0KPj4gDQo+PiArICBwcm9jID0gbGludXhf YWRkX3Byb2Nlc3MgKHBpZCwgMSk7DQo+PiArDQo+PiAgIC8qIEF0dGFjaCB0 byBQSUQuICBXZSB3aWxsIGNoZWNrIGZvciBvdGhlciB0aHJlYWRzDQo+PiAg ICAgIHNvb24uICAqLw0KPj4gICBlcnIgPSBsaW51eF9hdHRhY2hfbHdwIChw dGlkKTsNCj4+IEBAIC0xMTk4LDggKzEyMDAsNiBAQCBsaW51eF9hdHRhY2gg KHVuc2lnbmVkIGxvbmcgcGlkKQ0KPj4gICAgICAgZXJyb3IgKCJDYW5ub3Qg YXR0YWNoIHRvIHByb2Nlc3MgJWxkOiAlcyIsIHBpZCwgcmVhc29uLmNfc3Ry ICgpKTsNCj4+ICAgICB9DQo+PiANCj4+IC0gIHByb2MgPSBsaW51eF9hZGRf cHJvY2VzcyAocGlkLCAxKTsNCj4+IC0NCj4gDQo+IFRoaXMgZmFpbHMgdG8g Y29uc2lkZXIgdGhlIGVycm9yIGNvbmRpdGlvbnMuICBUaGF0IGVycm9yIGNh bGwNCj4gdmlzaWJsZSBhYm92ZSB0aHJvd3MgYW4gZXhjZXB0aW9uLg0KPiAN Cj4gLSBJZiBHREJzZXJ2ZXIgaXMgYWxyZWFkeSBhdHRhY2hlZCB0byB0aGUg cHJvY2VzcywgdGhpcyB3aWxsDQo+ICBjcmVhdGUgYW5vdGhlciBwcm9jZXNz X2luZm8gb2JqZWN0IGZvciB0aGUgYWxyZWFkeS1hdHRhY2hlZA0KPiAgcHJv Y2VzcywgYW5kIGxlYXZlIGl0IGJlaGluZC4NCj4gDQo+ICBGb3IgdGhpcyBj YXNlLCBpdCB3b3VsZCBzZWVtIGJldHRlciB0byBjaGVjayB3aGV0aGVyIHdl J3JlDQo+ICBhbHJlYWR5IGF0dGFjaGVkIHRvIGEgZ2l2ZW4gUElEIGluIGNv bW1vbiBjb2RlLCBhcm91bmQNCj4gIHNlcnZlci5jOmF0dGFjaF9pbmZlcmlv ci4NCg0KQXNzdW1pbmcgeW91IGFyZSBzdWdnZXN0aW5nIGFkZGluZyBhIGNo ZWNrIGlmIHRoZSBwcm9jZXNzIG9iamVjdA0KZXhpc3RzIGluIGdkYnNlcnZl ciwgcmF0aGVyIHRoYW4gYWRkaW5nIGEgbmV3IHRhcmdldCBmdW5jIHdoaWNo DQp0aGVuIGNhbGxzIG91dCB0byAvcHJvYy4NCg0KPiANCj4gLSBJZiBHREJz ZXJ2ZXIgaXNuJ3QgYWxyZWFkeSBhdHRhY2hlZCwgYnV0IHRoZSBhdHRhY2gg ZmFpbHMsDQo+ICB0aGlzIHdpbGwgbGlrZXdpc2UgbGVhdmUgYSBzdGFsZSBw cm9jZXNzX2luZm8gb2JqZWN0IGJlaGluZC4NCj4gDQoNCkkgdGhpbmsgSeKA mW0gcHJvYmFibHkgbWlzc2luZyBzb21ldGhpbmcgaGVyZSwgYnV0IGlmIHRo ZSBhdHRhY2gNCmZhaWxzIGZvciBhbnkgcmVhc29uIHRoZW4gZ2Ric2VydmVy IHdpbGwgZXJyb3IgYW5kIGV4aXQgLSBzbyBpdA0Kd29u4oCZdCBtYXR0ZXIg aWYgdGhlIG9iamVjdCBpcyBub3QgZGVsZXRlZD8NCg0KDQpOZXcgcGF0Y2gg d2l0aCB0aGUgYWJvdmUgY2hhbmdlcy4gT2s/DQoNCg0KICAgIGdkYi9nZGJz ZXJ2ZXIvQ2hhbmdlTG9nOg0KDQogICAgMjAxOS0wMi0wMSAgQWxhbiBIYXl3 YXJkICA8YWxhbi5oYXl3YXJkQGFybS5jb20+DQoNCiAgICAgICAgICAgICog bGludXgtbG93LmMgKGxpbnV4X2F0dGFjaCk6IEFkZCBwcm9jZXNzIGJlZm9y ZSBsd3AuDQogICAgICAgICAgICAqIHNlcnZlci5jIChhdHRhY2hfaW5mZXJp b3IpOiBDaGVjayBpZiBhbHJlYWR5IGF0dGFjaGVkLg0KDQpkaWZmIC0tZ2l0 IGEvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cuYyBiL2dkYi9nZGJzZXJ2ZXIv bGludXgtbG93LmMNCmluZGV4IDQ0MDE2ZDIzMTAuLjhjNWE1MWYyM2MgMTAw NjQ0DQotLS0gYS9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jDQorKysgYi9n ZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jDQpAQCAtMTE4OCwxOCArMTE4OCwx OSBAQCBsaW51eF9hdHRhY2ggKHVuc2lnbmVkIGxvbmcgcGlkKQ0KICAgcHRp ZF90IHB0aWQgPSBwdGlkX3QgKHBpZCwgcGlkLCAwKTsNCiAgIGludCBlcnI7 DQoNCisgIHByb2MgPSBsaW51eF9hZGRfcHJvY2VzcyAocGlkLCAxKTsNCisN CiAgIC8qIEF0dGFjaCB0byBQSUQuICBXZSB3aWxsIGNoZWNrIGZvciBvdGhl ciB0aHJlYWRzDQogICAgICBzb29uLiAgKi8NCiAgIGVyciA9IGxpbnV4X2F0 dGFjaF9sd3AgKHB0aWQpOw0KICAgaWYgKGVyciAhPSAwKQ0KICAgICB7DQot ICAgICAgc3RkOjpzdHJpbmcgcmVhc29uID0gbGludXhfcHRyYWNlX2F0dGFj aF9mYWlsX3JlYXNvbl9zdHJpbmcgKHB0aWQsIGVycik7DQorICAgICAgcmVt b3ZlX3Byb2Nlc3MgKHByb2MpOw0KDQorICAgICAgc3RkOjpzdHJpbmcgcmVh c29uID0gbGludXhfcHRyYWNlX2F0dGFjaF9mYWlsX3JlYXNvbl9zdHJpbmcg KHB0aWQsIGVycik7DQogICAgICAgZXJyb3IgKCJDYW5ub3QgYXR0YWNoIHRv IHByb2Nlc3MgJWxkOiAlcyIsIHBpZCwgcmVhc29uLmNfc3RyICgpKTsNCiAg ICAgfQ0KDQotICBwcm9jID0gbGludXhfYWRkX3Byb2Nlc3MgKHBpZCwgMSk7 DQotDQogICAvKiBEb24ndCBpZ25vcmUgdGhlIGluaXRpYWwgU0lHU1RPUCBp ZiB3ZSBqdXN0IGF0dGFjaGVkIHRvIHRoaXMNCiAgICAgIHByb2Nlc3MuICBJ dCB3aWxsIGJlIGNvbGxlY3RlZCBieSB3YWl0IHNob3J0bHkuICAqLw0KICAg aW5pdGlhbF90aHJlYWQgPSBmaW5kX3RocmVhZF9wdGlkIChwdGlkX3QgKHBp ZCwgcGlkLCAwKSk7DQpkaWZmIC0tZ2l0IGEvZ2RiL2dkYnNlcnZlci9zZXJ2 ZXIuYyBiL2dkYi9nZGJzZXJ2ZXIvc2VydmVyLmMNCmluZGV4IGY5YmZkZDcz MDcuLmU5NjBjMTBkNDAgMTAwNjQ0DQotLS0gYS9nZGIvZ2Ric2VydmVyL3Nl cnZlci5jDQorKysgYi9nZGIvZ2Ric2VydmVyL3NlcnZlci5jDQpAQCAtMjk1 LDYgKzI5NSw5IEBAIGF0dGFjaF9pbmZlcmlvciAoaW50IHBpZCkNCiAgIC8q IG15YXR0YWNoIHNob3VsZCByZXR1cm4gLTEgaWYgYXR0YWNoaW5nIGlzIHVu c3VwcG9ydGVkLA0KICAgICAgMCBpZiBpdCBzdWNjZWVkZWQsIGFuZCBjYWxs IGVycm9yKCkgb3RoZXJ3aXNlLiAgKi8NCg0KKyAgaWYgKGZpbmRfcHJvY2Vz c19waWQgKHBpZCkgIT0gbnVsbHB0cikNCisgICAgZXJyb3IgKCJBbHJlYWR5 IGF0dGFjaGVkIHRvIHByb2Nlc3MgJWRcbiIsIHBpZCk7DQorDQogICBpZiAo bXlhdHRhY2ggKHBpZCkgIT0gMCkNCiAgICAgcmV0dXJuIC0xOw0KDQoNCg== >From gdb-patches-return-153735-listarch-gdb-patches=sources.redhat.com@sourceware.org Fri Feb 01 12:30:31 2019 Return-Path: Delivered-To: listarch-gdb-patches@sources.redhat.com Received: (qmail 100838 invoked by alias); 1 Feb 2019 12:30:15 -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 100791 invoked by uid 89); 1 Feb 2019 12:30:14 -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,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.2 spammy=multi X-HELO: mail-wm1-f68.google.com Received: from mail-wm1-f68.google.com (HELO mail-wm1-f68.google.com) (209.85.128.68) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 01 Feb 2019 12:30:04 +0000 Received: by mail-wm1-f68.google.com with SMTP id f188so5997724wmf.5 for ; Fri, 01 Feb 2019 04:30:04 -0800 (PST) Return-Path: Received: from [10.101.61.114] ([213.58.148.146]) by smtp.gmail.com with ESMTPSA id n127sm2633272wmd.20.2019.02.01.04.30.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 01 Feb 2019 04:30:01 -0800 (PST) Subject: Re: [PATCH] gdbserver: When attaching, add process before lwps To: Alan Hayward References: <20190125104834.2595-1-alan.hayward@arm.com> <0e75277b-fa80-129d-e82b-3f854bb33124@redhat.com> <7F0653B2-0EE2-4242-BE91-C40B055FD169@arm.com> Cc: "gdb-patches@sourceware.org" , nd From: Pedro Alves Message-ID: <93ef0362-677a-4353-5942-d987a985e403@redhat.com> Date: Fri, 01 Feb 2019 12:30: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: <7F0653B2-0EE2-4242-BE91-C40B055FD169@arm.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-SW-Source: 2019-02/txt/msg00002.txt.bz2 Content-length: 3103 On 02/01/2019 11:20 AM, Alan Hayward wrote: > > >> On 25 Jan 2019, at 18:23, Pedro Alves wrote: >> >> On 01/25/2019 10:48 AM, Alan Hayward wrote: >>> The recent BP/WP changes for AArch64 swapping the order in add_lwp() >>> so that the process was added before the lwp. This was due to the lwp >>> creation requiring the process data. >>> >>> This also needs changing in linux_attach(). >>> >>> Fixes gdb.server/ext-attach.exp on Aarch64. >>> >>> (This regression was hidden due to the racy nature of the gdb.server >>> tests - now they are no longer racy it'll be easier to spot. Also >>> checked X86). >>> >>> gdb/gdbserver/ChangeLog: >>> >>> 2019-01-25 Alan Hayward >>> >>> * linux-low.c (linux_attach): Add process before lwp. >> >>> --- >>> gdb/gdbserver/linux-low.c | 4 ++-- >>> 1 file changed, 2 insertions(+), 2 deletions(-) >>> >>> diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c >>> index 17cce24d76..1ab2cfb1eb 100644 >>> --- a/gdb/gdbserver/linux-low.c >>> +++ b/gdb/gdbserver/linux-low.c >>> @@ -1188,6 +1188,8 @@ linux_attach (unsigned long pid) >>> ptid_t ptid = ptid_t (pid, pid, 0); >>> int err; >>> >>> + proc = linux_add_process (pid, 1); >>> + >>> /* Attach to PID. We will check for other threads >>> soon. */ >>> err = linux_attach_lwp (ptid); >>> @@ -1198,8 +1200,6 @@ linux_attach (unsigned long pid) >>> error ("Cannot attach to process %ld: %s", pid, reason.c_str ()); >>> } >>> >>> - proc = linux_add_process (pid, 1); >>> - >> >> This fails to consider the error conditions. That error call >> visible above throws an exception. >> >> - If GDBserver is already attached to the process, this will >> create another process_info object for the already-attached >> process, and leave it behind. >> >> For this case, it would seem better to check whether we're >> already attached to a given PID in common code, around >> server.c:attach_inferior. > > Assuming you are suggesting adding a check if the process object > exists in gdbserver, rather than adding a new target func which > then calls out to /proc. Yes. I don't really understand what the call to /proc would do. > >> >> - If GDBserver isn't already attached, but the attach fails, >> this will likewise leave a stale process_info object behind. >> > > I think I’m probably missing something here, but if the attach > fails for any reason then gdbserver will error and exit - so it > won’t matter if the object is not deleted? Try "gdbserver --multi" + "target extended-remote". With that, gdbserver won't exit when a process exits. The connection stays open, ready for a "run" or "attach" command to spawn new processes on the server side. > > > New patch with the above changes. Ok? Can you add a test for that error case to gdb.base/attach.exp, please? (gdb) attach PID (gdb) add-iferior (gdb) inferior 2 (gdb) attach PID # should fail. # restart gdb The restart gdb step checks whether gdbserver crashes / or misbehaves while detaching from the process. Thanks, -- Thanks, Pedro Alves