From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20593 invoked by alias); 14 Oct 2009 18:21:15 -0000 Received: (qmail 20578 invoked by uid 22791); 14 Oct 2009 18:21:14 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL,BAYES_00,SARE_MSGID_LONG40,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.33.17) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 14 Oct 2009 18:21:10 +0000 Received: from wpaz24.hot.corp.google.com (wpaz24.hot.corp.google.com [172.24.198.88]) by smtp-out.google.com with ESMTP id n9EIL7we023340 for ; Wed, 14 Oct 2009 19:21:07 +0100 Received: from yxe10 (yxe10.prod.google.com [10.190.2.10]) by wpaz24.hot.corp.google.com with ESMTP id n9EIKnC8005732 for ; Wed, 14 Oct 2009 11:21:04 -0700 Received: by yxe10 with SMTP id 10so51879yxe.12 for ; Wed, 14 Oct 2009 11:21:04 -0700 (PDT) MIME-Version: 1.0 Received: by 10.101.183.7 with SMTP id k7mr7574937anp.164.1255544464441; Wed, 14 Oct 2009 11:21:04 -0700 (PDT) In-Reply-To: <200910132153.51171.pedro@codesourcery.com> References: <20091013184120.30A5776761@ppluzhnikov.mtv.corp.google.com> <200910132153.51171.pedro@codesourcery.com> Date: Wed, 14 Oct 2009 18:21:00 -0000 Message-ID: <8ac60eac0910141121r59573032na0ccee77f049366f@mail.gmail.com> Subject: Re: [patch] Fix for internal-error: linux_nat_post_attach_wait: Assertion `pid == new_pid && WIFSTOPPED (status)' failed. From: Paul Pluzhnikov To: Pedro Alves Cc: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=001636c59534cd81c70475e93906 X-System-Of-Record: true X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2009-10/txt/msg00310.txt.bz2 --001636c59534cd81c70475e93906 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1580 On Tue, Oct 13, 2009 at 1:53 PM, Pedro Alves wrote: >> 2009-10-13 Paul Pluzhnikov >> >> * linux-nat.c (linux_nat_post_attach_wait): Adjust assert. >> > Sorry, but this isn't correct. Thanks for review and explanations. > I think what we should do is just get rid of the new > LWP that we found exiting right after attaching. I believe the new patch below achieves that. It's very hard to test, since it only happens once in about 50 attaches, but I did catch this several times, and GDB appears to have done the right thing. > I would believe that we can also see the main LWP exit right > after attach (in linux_nat_attach). I'm not sure what exactly > is the best to do UI wise in that case. If we want to store > the event pending to report later, we'll have to use > the lwp->waitstatus field, not lwp->status, due to the > fact that lwp->status == 0 is ambiguous with > "no-stored-pending-event" (see status_callback). I believe I did this now. Not sure whether lp->resumed should also be set here. > The simple > alternative is to again just pretend that the process had > exited before we managed to attach to it, get rid of it, > and error out like we would if the process didn't exist > at all when we tried to attach. This appears harder to do, since to_attach doesn't return anything. Thanks, -- Paul Pluzhnikov 2009-10-14 Paul Pluzhnikov * linux-nat.c (linux_nat_post_attach_wait): Return success/failure indicator. (lin_lwp_attach_lwp, linux_nat_attach): Adjust. --001636c59534cd81c70475e93906 Content-Type: text/plain; charset=US-ASCII; name="gdb-assert-10757-20091014.txt" Content-Disposition: attachment; filename="gdb-assert-10757-20091014.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g0sepgmk0 Content-length: 4242 SW5kZXg6IGxpbnV4LW5hdC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT IGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvbGludXgtbmF0LmMsdgpyZXRyaWV2 aW5nIHJldmlzaW9uIDEuMTUxCmRpZmYgLXUgLXAgLXUgLXIxLjE1MSBsaW51 eC1uYXQuYwotLS0gbGludXgtbmF0LmMJOSBPY3QgMjAwOSAwMTo1NzoxMiAt MDAwMAkxLjE1MQorKysgbGludXgtbmF0LmMJMTQgT2N0IDIwMDkgMTg6MDY6 MjYgLTAwMDAKQEAgLTEyODksMTQgKzEyODksMTMgQEAgcGlkX2lzX3N0b3Bw ZWQgKHBpZF90IHBpZCkKIH0KIAogLyogV2FpdCBmb3IgdGhlIExXUCBzcGVj aWZpZWQgYnkgTFAsIHdoaWNoIHdlIGhhdmUganVzdCBhdHRhY2hlZCB0by4K LSAgIFJldHVybnMgYSB3YWl0IHN0YXR1cyBmb3IgdGhhdCBMV1AsIHRvIGNh Y2hlLiAgKi8KKyAgIFJldHVybnMgMSBpZiBMV1AgaGFzIGJlZW4gc3RvcHBl ZCwgZWxzZSAwLiAgKi8KIAogc3RhdGljIGludAotbGludXhfbmF0X3Bvc3Rf YXR0YWNoX3dhaXQgKHB0aWRfdCBwdGlkLCBpbnQgZmlyc3QsIGludCAqY2xv bmVkLAotCQkJICAgIGludCAqc2lnbmFsbGVkKQorbGludXhfbmF0X3Bvc3Rf YXR0YWNoX3dhaXQgKHB0aWRfdCBwdGlkLCBpbnQgZmlyc3QsIGludCAqc3Rh dHVzLAorCQkJICAgIGludCAqY2xvbmVkLCBpbnQgKnNpZ25hbGxlZCkKIHsK ICAgcGlkX3QgbmV3X3BpZCwgcGlkID0gR0VUX0xXUCAocHRpZCk7Ci0gIGlu dCBzdGF0dXM7CiAKICAgaWYgKHBpZF9pc19zdG9wcGVkIChwaWQpKQogICAg IHsKQEAgLTEzMjcsMjkgKzEzMjYsMzggQEAgbGludXhfbmF0X3Bvc3RfYXR0 YWNoX3dhaXQgKHB0aWRfdCBwdGlkLAogICAvKiBNYWtlIHN1cmUgdGhlIGlu aXRpYWwgcHJvY2VzcyBpcyBzdG9wcGVkLiAgVGhlIHVzZXItbGV2ZWwgdGhy ZWFkcwogICAgICBsYXllciBtaWdodCB3YW50IHRvIHBva2UgYXJvdW5kIGlu IHRoZSBpbmZlcmlvciwgYW5kIHRoYXQgd29uJ3QKICAgICAgd29yayBpZiB0 aGluZ3MgaGF2ZW4ndCBzdGFiaWxpemVkIHlldC4gICovCi0gIG5ld19waWQg PSBteV93YWl0cGlkIChwaWQsICZzdGF0dXMsIDApOworICBuZXdfcGlkID0g bXlfd2FpdHBpZCAocGlkLCBzdGF0dXMsIDApOwogICBpZiAobmV3X3BpZCA9 PSAtMSAmJiBlcnJubyA9PSBFQ0hJTEQpCiAgICAgewogICAgICAgaWYgKGZp cnN0KQogCXdhcm5pbmcgKF8oIiVzIGlzIGEgY2xvbmVkIHByb2Nlc3MiKSwg dGFyZ2V0X3BpZF90b19zdHIgKHB0aWQpKTsKIAogICAgICAgLyogVHJ5IGFn YWluIHdpdGggX19XQ0xPTkUgdG8gY2hlY2sgY2xvbmVkIHByb2Nlc3Nlcy4g ICovCi0gICAgICBuZXdfcGlkID0gbXlfd2FpdHBpZCAocGlkLCAmc3RhdHVz LCBfX1dDTE9ORSk7CisgICAgICBuZXdfcGlkID0gbXlfd2FpdHBpZCAocGlk LCBzdGF0dXMsIF9fV0NMT05FKTsKICAgICAgICpjbG9uZWQgPSAxOwogICAg IH0KIAotICBnZGJfYXNzZXJ0IChwaWQgPT0gbmV3X3BpZCAmJiBXSUZTVE9Q UEVEIChzdGF0dXMpKTsKKyAgZ2RiX2Fzc2VydCAocGlkID09IG5ld19waWQp OwogCi0gIGlmIChXU1RPUFNJRyAoc3RhdHVzKSAhPSBTSUdTVE9QKQorICBp ZiAoIVdJRlNUT1BQRUQgKCpzdGF0dXMpKQorICAgIHsKKyAgICAgIC8qIFRo ZSBwaWQgd2UgdHJpZWQgdG8gYXR0YWNoIGhhcyBhcHBhcmVudGx5IGp1c3Qg ZXhpdGVkLiAgKi8KKyAgICAgIGlmIChkZWJ1Z19saW51eF9uYXQpCisJZnBy aW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLCAiTE5QQVc6IEZhaWxlZCB0 byBzdG9wICVkOiAlcyIsCisJCQkgICAgcGlkLCBzdGF0dXNfdG9fc3RyICgq c3RhdHVzKSk7CisgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgaWYgKFdT VE9QU0lHICgqc3RhdHVzKSAhPSBTSUdTVE9QKQogICAgIHsKICAgICAgICpz aWduYWxsZWQgPSAxOwogICAgICAgaWYgKGRlYnVnX2xpbnV4X25hdCkKIAlm cHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCiAJCQkgICAgIkxOUEFX OiBSZWNlaXZlZCAlcyBhZnRlciBhdHRhY2hpbmdcbiIsCi0JCQkgICAgc3Rh dHVzX3RvX3N0ciAoc3RhdHVzKSk7CisJCQkgICAgc3RhdHVzX3RvX3N0ciAo KnN0YXR1cykpOwogICAgIH0KIAotICByZXR1cm4gc3RhdHVzOworICByZXR1 cm4gMTsKIH0KIAogLyogQXR0YWNoIHRvIHRoZSBMV1Agc3BlY2lmaWVkIGJ5 IFBJRC4gIFJldHVybiAwIGlmIHN1Y2Nlc3NmdWwgb3IgLTEKQEAgLTEzOTUs NyArMTQwMyw5IEBAIGxpbl9sd3BfYXR0YWNoX2x3cCAocHRpZF90IHB0aWQp CiAJCQkgICAgIkxMQUw6IFBUUkFDRV9BVFRBQ0ggJXMsIDAsIDAgKE9LKVxu IiwKIAkJCSAgICB0YXJnZXRfcGlkX3RvX3N0ciAocHRpZCkpOwogCi0gICAg ICBzdGF0dXMgPSBsaW51eF9uYXRfcG9zdF9hdHRhY2hfd2FpdCAocHRpZCwg MCwgJmNsb25lZCwgJnNpZ25hbGxlZCk7CisgICAgICBpZiAoIWxpbnV4X25h dF9wb3N0X2F0dGFjaF93YWl0IChwdGlkLCAwLCAmc3RhdHVzLCAmY2xvbmVk LCAmc2lnbmFsbGVkKSkKKwlyZXR1cm4gLTE7CisKICAgICAgIGxwID0gYWRk X2x3cCAocHRpZCk7CiAgICAgICBscC0+c3RvcHBlZCA9IDE7CiAgICAgICBs cC0+Y2xvbmVkID0gY2xvbmVkOwpAQCAtMTQ5Myw4ICsxNTAzLDEzIEBAIGxp bnV4X25hdF9hdHRhY2ggKHN0cnVjdCB0YXJnZXRfb3BzICpvcHMKICAgLyog QWRkIHRoZSBpbml0aWFsIHByb2Nlc3MgYXMgdGhlIGZpcnN0IExXUCB0byB0 aGUgbGlzdC4gICovCiAgIGxwID0gYWRkX2x3cCAocHRpZCk7CiAKLSAgc3Rh dHVzID0gbGludXhfbmF0X3Bvc3RfYXR0YWNoX3dhaXQgKGxwLT5wdGlkLCAx LCAmbHAtPmNsb25lZCwKLQkJCQkgICAgICAgJmxwLT5zaWduYWxsZWQpOwor ICBpZiAoIWxpbnV4X25hdF9wb3N0X2F0dGFjaF93YWl0IChscC0+cHRpZCwg MSwgJnN0YXR1cywgJmxwLT5jbG9uZWQsCisJCQkJICAgJmxwLT5zaWduYWxs ZWQpKQorICAgIHsKKyAgICAgIHN0b3JlX3dhaXRzdGF0dXMgKCZscC0+d2Fp dHN0YXR1cywgc3RhdHVzKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisKICAg bHAtPnN0b3BwZWQgPSAxOwogCiAgIC8qIFNhdmUgdGhlIHdhaXQgc3RhdHVz IHRvIHJlcG9ydCBsYXRlci4gICovCg== --001636c59534cd81c70475e93906--