From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6330 invoked by alias); 17 Aug 2009 22:44:27 -0000 Received: (qmail 6320 invoked by uid 22791); 17 Aug 2009 22:44:25 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL,BAYES_00,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.45.13) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 17 Aug 2009 22:44:18 +0000 Received: from spaceape9.eur.corp.google.com (spaceape9.eur.corp.google.com [172.28.16.143]) by smtp-out.google.com with ESMTP id n7HMiESc013012 for ; Mon, 17 Aug 2009 15:44:15 -0700 Received: from rv-out-0506.google.com (rvbf9.prod.google.com [10.140.82.9]) by spaceape9.eur.corp.google.com with ESMTP id n7HMiBlP012549 for ; Mon, 17 Aug 2009 15:44:12 -0700 Received: by rv-out-0506.google.com with SMTP id f9so750205rvb.41 for ; Mon, 17 Aug 2009 15:44:11 -0700 (PDT) MIME-Version: 1.0 Received: by 10.140.142.11 with SMTP id p11mr1781956rvd.21.1250549051535; Mon, 17 Aug 2009 15:44:11 -0700 (PDT) In-Reply-To: <8ac60eac0908041147m17f3f337g3ea15696dc0a3170@mail.gmail.com> References: <20090728154001.GA19451@caradoc.them.org> <8ac60eac0907291656v13f568ebw4f3a2b9bb7c7223d@mail.gmail.com> <8ac60eac0908031749y59867374wa451d2f504483390@mail.gmail.com> <20090804145318.GA31664@caradoc.them.org> <8ac60eac0908041037q46b447d9n7b539ab53d7ce1ea@mail.gmail.com> <20090804184000.GA14873@caradoc.them.org> <8ac60eac0908041147m17f3f337g3ea15696dc0a3170@mail.gmail.com> Date: Tue, 18 Aug 2009 05:56:00 -0000 Message-ID: <8ac60eac0908171544r6d1eac67lcaedb388b525c5@mail.gmail.com> Subject: Re: Solibs and objfile BFD ownership From: Paul Pluzhnikov To: Paul Pluzhnikov , tromey@redhat.com, gdb@sourceware.org Content-Type: multipart/mixed; boundary=000e0cd14836fdb31b04715e23e1 X-System-Of-Record: true X-IsSubscribed: yes Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2009-08/txt/msg00156.txt.bz2 --000e0cd14836fdb31b04715e23e1 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-length: 1445 On Tue, Aug 4, 2009 at 11:47 AM, Paul Pluzhnikov wrote: > So committed. Thanks, I seem to have hit a rough patch with my patches :-( The BFD refcounting patch from 2009-08-04 causes GDB to crash when I attach to a process with many solibs, then (while GDB is reading solib symbols) change my mind about attaching and hit Control-C, then 'run'. This is happening because in symbol_add_stub refcount may not be set: so->objfile = symbol_file_add_from_bfd (so->abfd, flags, sap, OBJF_SHARED); ---> QUIT could be executed deep inside symbol_file_add_from_bfd, and ---> bfd_userdata below is never set. p_refcount = xmalloc (sizeof (*p_refcount)); *p_refcount = 2; /* Both solib and objfile refer to this abfd. */ bfd_usrdata (so->abfd) = p_refcount; Later, we re-enter symbol_add_stub, and this: ALL_OBJFILES (so->objfile) { if (strcmp (so->objfile->name, so->so_name) == 0) return; re-connects the so with the objfile, but never sets the bfd_usrdata. Later still (during execution of 'run'), we go through clear_solib and objfile_purge_solibs, and the latter crashes trying to bfd_close the abfd which has already been bfd_close()d by the former. Here is a proposed patch. Tested on Linux/x86_64 with no new failures. Thanks, -- Paul Pluzhnikov 2009-08-17 Paul Pluzhnikov * solib.c (set_ref_count): New function. (symbol_add_stub): Call it. --000e0cd14836fdb31b04715e23e1 Content-Type: text/plain; charset=US-ASCII; name="gdb-bfd-ownership-20090817.txt" Content-Disposition: attachment; filename="gdb-bfd-ownership-20090817.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fyhshh5u0 Content-length: 2595 SW5kZXg6IHNvbGliLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls ZTogL2N2cy9zcmMvc3JjL2dkYi9zb2xpYi5jLHYKcmV0cmlldmluZyByZXZp c2lvbiAxLjEyNApkaWZmIC11IC1wIC11IC1yMS4xMjQgc29saWIuYwotLS0g c29saWIuYwkxMCBBdWcgMjAwOSAyMjowOToyMiAtMDAwMAkxLjEyNAorKysg c29saWIuYwkxNyBBdWcgMjAwOSAyMjoyNzowNyAtMDAwMApAQCAtNDQwLDI2 ICs0NDAsNTMgQEAgbWFzdGVyX3NvX2xpc3QgKHZvaWQpCiAgIHJldHVybiBz b19saXN0X2hlYWQ7CiB9CiAKKy8qIFNldCByZWZlcmVuY2UgY291bnQgb24g QUJGRCB0byBDT1VOVC4gICovCisKK3N0YXRpYyB2b2lkCitzZXRfcmVmX2Nv dW50IChzdHJ1Y3QgYmZkICphYmZkLCBpbnQgY291bnQpCit7CisgIGludCAq cF9yZWZjb3VudCA9IChpbnQgKikgeG1hbGxvYyAoc2l6ZW9mICgqcF9yZWZj b3VudCkpOworICAqcF9yZWZjb3VudCA9IGNvdW50OworCisgIGdkYl9hc3Nl cnQgKGJmZF91c3JkYXRhIChhYmZkKSA9PSBOVUxMKTsKKyAgYmZkX3VzcmRh dGEgKGFiZmQpID0gcF9yZWZjb3VudDsKK30KKwogc3RhdGljIHZvaWQKIHN5 bWJvbF9hZGRfc3R1YiAoc3RydWN0IHNvX2xpc3QgKnNvLCBpbnQgZmxhZ3Mp CiB7CiAgIHN0cnVjdCBzZWN0aW9uX2FkZHJfaW5mbyAqc2FwOwotICBpbnQg KnBfcmVmY291bnQ7CisgIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlOwogCiAg IC8qIEhhdmUgd2UgYWxyZWFkeSBsb2FkZWQgdGhpcyBzaGFyZWQgb2JqZWN0 PyAgKi8KLSAgQUxMX09CSkZJTEVTIChzby0+b2JqZmlsZSkKKyAgQUxMX09C SkZJTEVTIChvYmpmaWxlKQogICAgIHsKLSAgICAgIGlmIChzdHJjbXAgKHNv LT5vYmpmaWxlLT5uYW1lLCBzby0+c29fbmFtZSkgPT0gMCkKLQlyZXR1cm47 CisgICAgICBpZiAoc3RyY21wIChvYmpmaWxlLT5uYW1lLCBzby0+c29fbmFt ZSkgPT0gMCkKKwl7CisJICBpZiAob2JqZmlsZSAhPSBzby0+b2JqZmlsZSkK KwkgICAgeworCSAgICAgIC8qIFRoaXMgY291bGQgaGFwcGVuIHdoZW4gc3lt Ym9sX2ZpbGVfYWRkX2Zyb21fYmZkCisJCSBiZWxvdyBpcyBpbnRlcnJ1cHRl ZC4gICovCisKKwkgICAgICBnZGJfYXNzZXJ0IChzby0+b2JqZmlsZSA9PSBO VUxMKTsKKwkgICAgICBnZGJfYXNzZXJ0IChiZmRfdXNyZGF0YSAoc28tPmFi ZmQpID09IE5VTEwpOworCisJICAgICAgc28tPm9iamZpbGUgPSBvYmpmaWxl OyAgLyogUmVjb25uZWN0LiAgKi8KKworCSAgICAgIC8qIEJvdGggc29saWIg YW5kIG9iamZpbGUgcmVmZXIgdG8gdGhpcyBhYmZkLiAgKi8KKwkgICAgICBz ZXRfcmVmX2NvdW50IChzby0+YWJmZCwgMik7CisJICAgIH0KKwkgIHJldHVy bjsKKwl9CiAgICAgfQogCiAgIHNhcCA9IGJ1aWxkX3NlY3Rpb25fYWRkcl9p bmZvX2Zyb21fc2VjdGlvbl90YWJsZSAoc28tPnNlY3Rpb25zLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNvLT5zZWN0aW9uc19lbmQpOwogCiAgIHNvLT5vYmpmaWxlID0gc3ltYm9s X2ZpbGVfYWRkX2Zyb21fYmZkIChzby0+YWJmZCwgZmxhZ3MsIHNhcCwgT0JK Rl9TSEFSRUQpOwotICBwX3JlZmNvdW50ID0geG1hbGxvYyAoc2l6ZW9mICgq cF9yZWZjb3VudCkpOwotICAqcF9yZWZjb3VudCA9IDI7ICAvKiBCb3RoIHNv bGliIGFuZCBvYmpmaWxlIHJlZmVyIHRvIHRoaXMgYWJmZC4gICovCi0gIGJm ZF91c3JkYXRhIChzby0+YWJmZCkgPSBwX3JlZmNvdW50OworCisgIC8qIEJv dGggc29saWIgYW5kIG9iamZpbGUgcmVmZXIgdG8gdGhpcyBhYmZkLiAgKi8K KyAgc2V0X3JlZl9jb3VudCAoc28tPmFiZmQsIDIpOwogCiAgIGZyZWVfc2Vj dGlvbl9hZGRyX2luZm8gKHNhcCk7CiAK --000e0cd14836fdb31b04715e23e1--