From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26023 invoked by alias); 19 Aug 2009 23:56:56 -0000 Received: (qmail 26014 invoked by uid 22791); 19 Aug 2009 23:56:56 -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; Wed, 19 Aug 2009 23:56:49 +0000 Received: from spaceape10.eur.corp.google.com (spaceape10.eur.corp.google.com [172.28.16.144]) by smtp-out.google.com with ESMTP id n7JNukFQ015765 for ; Wed, 19 Aug 2009 16:56:46 -0700 Received: from rv-out-0708.google.com (rvbf25.prod.google.com [10.140.82.25]) by spaceape10.eur.corp.google.com with ESMTP id n7JNug8I015256 for ; Wed, 19 Aug 2009 16:56:43 -0700 Received: by rv-out-0708.google.com with SMTP id f25so1349925rvb.14 for ; Wed, 19 Aug 2009 16:56:42 -0700 (PDT) MIME-Version: 1.0 Received: by 10.141.22.21 with SMTP id z21mr3902350rvi.279.1250726202225; Wed, 19 Aug 2009 16:56:42 -0700 (PDT) In-Reply-To: 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> <8ac60eac0908171544r6d1eac67lcaedb388b525c5@mail.gmail.com> Date: Thu, 20 Aug 2009 01:50:00 -0000 Message-ID: <8ac60eac0908191656o6c7c876cp503a3b6973ea090b@mail.gmail.com> Subject: Re: Solibs and objfile BFD ownership From: Paul Pluzhnikov To: Tom Tromey Cc: gdb@sourceware.org Content-Type: multipart/mixed; boundary=000e0cd1b430feb71e0471876261 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/msg00189.txt.bz2 --000e0cd1b430feb71e0471876261 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 1176 On Wed, Aug 19, 2009 at 3:11 PM, Tom Tromey wrote: > Paul> *p_refcount =3D 2; =A0/* Both solib and objfile refer to this = abfd. =A0*/ > Paul> bfd_usrdata (so->abfd) =3D p_refcount; > > I haven't had time to read this patch fully and try to understand it. > > It just struck me from a first reading that it would be simpler, and > more conventional, to have a "gdb_bfd_ref" function, to go along with > gdb_bfd_unref, which we call whenever we assign a 'bfd*' to a field > somewhere. It would be slightly wasteful to set refcount to 1 everywhere, since solib is the only place where sharing could (currently) occur. But maybe it *is* a good idea anyway. Here is a proposed fix. Tested on Linux/x86_64 with no new failures. Also tested to fix the crash I observed. Thanks, --=20 Paul Pluzhnikov 2009-08-19 Paul Pluzhnikov * objfiles.h (gdb_bfd_ref): New prototype. * objfiles.c (gdb_bfd_ref): New function. (allocate_objfile): Call it. (gdb_bfd_unref): Adjust assertion. * solib.c (solib_map_sections): Add reference. (symbol_add_stub): Don't add reference here. * symfile.c (reread_symbols): Add reference. --000e0cd1b430feb71e0471876261 Content-Type: text/plain; charset=US-ASCII; name="gdb-bfd-ownership-20090819.txt" Content-Disposition: attachment; filename="gdb-bfd-ownership-20090819.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fykq19y00 Content-length: 5913 SW5kZXg6IG9iamZpbGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg ZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9vYmpmaWxlcy5oLHYKcmV0cmlldmlu ZyByZXZpc2lvbiAxLjYxCmRpZmYgLXUgLXAgLXUgLXIxLjYxIG9iamZpbGVz LmgKLS0tIG9iamZpbGVzLmgJNCBBdWcgMjAwOSAxODo0NjowNSAtMDAwMAkx LjYxCisrKyBvYmpmaWxlcy5oCTE5IEF1ZyAyMDA5IDIzOjMwOjQzIC0wMDAw CkBAIC01MDUsNiArNTA1LDcgQEAgZXh0ZXJuIHZvaWQgc2V0X29iamZpbGVf ZGF0YSAoc3RydWN0IG9iagogZXh0ZXJuIHZvaWQgKm9iamZpbGVfZGF0YSAo c3RydWN0IG9iamZpbGUgKm9iamZpbGUsCiAJCQkgICBjb25zdCBzdHJ1Y3Qg b2JqZmlsZV9kYXRhICpkYXRhKTsKIAorZXh0ZXJuIHN0cnVjdCBiZmQgKmdk Yl9iZmRfcmVmIChzdHJ1Y3QgYmZkICphYmZkKTsKIGV4dGVybiB2b2lkIGdk Yl9iZmRfdW5yZWYgKHN0cnVjdCBiZmQgKmFiZmQpOwogDAogCkluZGV4OiBv YmpmaWxlcy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9j dnMvc3JjL3NyYy9nZGIvb2JqZmlsZXMuYyx2CnJldHJpZXZpbmcgcmV2aXNp b24gMS45MgpkaWZmIC11IC1wIC11IC1yMS45MiBvYmpmaWxlcy5jCi0tLSBv YmpmaWxlcy5jCTE3IEF1ZyAyMDA5IDExOjE2OjEzIC0wMDAwCTEuOTIKKysr IG9iamZpbGVzLmMJMTkgQXVnIDIwMDkgMjM6MzA6NDMgLTAwMDAKQEAgLTE4 MSw3ICsxODEsNyBAQCBhbGxvY2F0ZV9vYmpmaWxlIChiZmQgKmFiZmQsIGlu dCBmbGFncykKICAgICAgdGhhdCBhbnkgZGF0YSB0aGF0IGlzIHJlZmVyZW5j ZSBpcyBzYXZlZCBpbiB0aGUgcGVyLW9iamZpbGUgZGF0YQogICAgICByZWdp b24uICovCiAKLSAgb2JqZmlsZS0+b2JmZCA9IGFiZmQ7CisgIG9iamZpbGUt Pm9iZmQgPSBnZGJfYmZkX3JlZiAoYWJmZCk7CiAgIGlmIChvYmpmaWxlLT5u YW1lICE9IE5VTEwpCiAgICAgewogICAgICAgeGZyZWUgKG9iamZpbGUtPm5h bWUpOwpAQCAtMTA2Miw3ICsxMDYyLDI2IEBAIG9iamZpbGVzX2NoYW5nZWQg KHZvaWQpCiAgIG9iamZpbGVzX2NoYW5nZWRfcCA9IDE7ICAvKiBSZWJ1aWxk IHNlY3Rpb24gbWFwIG5leHQgdGltZSB3ZSBuZWVkIGl0LiAgKi8KIH0KIAot LyogVW5yZWZlcmVuY2UgYW5kIHBvc3NpYmx5IGNsb3NlIGFiZmQuICAqLwor LyogQWRkIHJlZmVyZW5jZSB0byBBQkZELiAgUmV0dXJucyBBQkZELiAgKi8K K3N0cnVjdCBiZmQgKgorZ2RiX2JmZF9yZWYgKHN0cnVjdCBiZmQgKmFiZmQp Cit7CisgIGludCAqcF9yZWZjb3VudCA9IGJmZF91c3JkYXRhIChhYmZkKTsK KworICBpZiAocF9yZWZjb3VudCAhPSBOVUxMKQorICAgIHsKKyAgICAgICpw X3JlZmNvdW50ICs9IDE7CisgICAgICByZXR1cm4gYWJmZDsKKyAgICB9CisK KyAgcF9yZWZjb3VudCA9IHhtYWxsb2MgKHNpemVvZiAoKnBfcmVmY291bnQp KTsKKyAgKnBfcmVmY291bnQgPSAxOworICBiZmRfdXNyZGF0YSAoYWJmZCkg PSBwX3JlZmNvdW50OworCisgIHJldHVybiBhYmZkOworfQorCisvKiBVbnJl ZmVyZW5jZSBhbmQgcG9zc2libHkgY2xvc2UgQUJGRC4gICovCiB2b2lkCiBn ZGJfYmZkX3VucmVmIChzdHJ1Y3QgYmZkICphYmZkKQogewpAQCAtMTA3NCwx NiArMTA5MywxNCBAQCBnZGJfYmZkX3VucmVmIChzdHJ1Y3QgYmZkICphYmZk KQogCiAgIHBfcmVmY291bnQgPSBiZmRfdXNyZGF0YSAoYWJmZCk7CiAKLSAg LyogVmFsaWQgcmFuZ2UgZm9yIHBfcmVmY291bnQ6IE5VTEwgKHNpbmdsZSBv d25lciksIG9yIGEgcG9pbnRlcgotICAgICB0byBpbnQgY291bnRlciwgd2hp Y2ggaGFzIGEgdmFsdWUgb2YgMSAoc2luZ2xlIG93bmVyKSBvciAyIChzaGFy ZWQpLiAgKi8KLSAgZ2RiX2Fzc2VydCAocF9yZWZjb3VudCA9PSBOVUxMIHx8 ICpwX3JlZmNvdW50ID09IDEgfHwgKnBfcmVmY291bnQgPT0gMik7CisgIC8q IFZhbGlkIHJhbmdlIGZvciBwX3JlZmNvdW50OiBhIHBvaW50ZXIgdG8gaW50 IGNvdW50ZXIsIHdoaWNoIGhhcyBhCisgICAgIHZhbHVlIG9mIDEgKHNpbmds ZSBvd25lcikgb3IgMiAoc2hhcmVkKS4gICovCisgIGdkYl9hc3NlcnQgKCpw X3JlZmNvdW50ID09IDEgfHwgKnBfcmVmY291bnQgPT0gMik7CisKKyAgKnBf cmVmY291bnQgLT0gMTsKKyAgaWYgKCpwX3JlZmNvdW50ID4gMCkKKyAgICBy ZXR1cm47CiAKLSAgaWYgKHBfcmVmY291bnQgIT0gTlVMTCkKLSAgICB7Ci0g ICAgICAqcF9yZWZjb3VudCAtPSAxOwotICAgICAgaWYgKCpwX3JlZmNvdW50 ID4gMCkKLQlyZXR1cm47Ci0gICAgfQogICB4ZnJlZSAocF9yZWZjb3VudCk7 CiAgIGJmZF91c3JkYXRhIChhYmZkKSA9IE5VTEw7ICAvKiBQYXJhbm9pYS4g ICovCiAKSW5kZXg6IHNvbGliLmMKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS Q1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9zb2xpYi5jLHYKcmV0cmlldmlu ZyByZXZpc2lvbiAxLjEyNApkaWZmIC11IC1wIC11IC1yMS4xMjQgc29saWIu YwotLS0gc29saWIuYwkxMCBBdWcgMjAwOSAyMjowOToyMiAtMDAwMAkxLjEy NAorKysgc29saWIuYwkxOSBBdWcgMjAwOSAyMzozMDo0NCAtMDAwMApAQCAt MzYxLDcgKzM2MSw3IEBAIHNvbGliX21hcF9zZWN0aW9ucyAodm9pZCAqYXJn KQogICBkb19jbGVhbnVwcyAob2xkX2NoYWluKTsKIAogICAvKiBMZWF2ZSBi ZmQgb3BlbiwgY29yZV94ZmVyX21lbW9yeSBhbmQgImluZm8gZmlsZXMiIG5l ZWQgaXQuICAqLwotICBzby0+YWJmZCA9IGFiZmQ7CisgIHNvLT5hYmZkID0g Z2RiX2JmZF9yZWYgKGFiZmQpOwogCiAgIC8qIGNvcHkgZnVsbCBwYXRoIG5h bWUgaW50byBzb19uYW1lLCBzbyB0aGF0IGxhdGVyIHN5bWJvbF9maWxlX2Fk ZAogICAgICBjYW4gZmluZCBpdCAqLwpAQCAtNDQ0LDcgKzQ0NCw2IEBAIHN0 YXRpYyB2b2lkCiBzeW1ib2xfYWRkX3N0dWIgKHN0cnVjdCBzb19saXN0ICpz bywgaW50IGZsYWdzKQogewogICBzdHJ1Y3Qgc2VjdGlvbl9hZGRyX2luZm8g KnNhcDsKLSAgaW50ICpwX3JlZmNvdW50OwogCiAgIC8qIEhhdmUgd2UgYWxy ZWFkeSBsb2FkZWQgdGhpcyBzaGFyZWQgb2JqZWN0PyAgKi8KICAgQUxMX09C SkZJTEVTIChzby0+b2JqZmlsZSkKQEAgLTQ1NywxMCArNDU2LDYgQEAgc3lt Ym9sX2FkZF9zdHViIChzdHJ1Y3Qgc29fbGlzdCAqc28sIGludAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNvLT5zZWN0aW9uc19lbmQpOwogCiAgIHNvLT5vYmpmaWxlID0gc3ltYm9s X2ZpbGVfYWRkX2Zyb21fYmZkIChzby0+YWJmZCwgZmxhZ3MsIHNhcCwgT0JK Rl9TSEFSRUQpOwotICBwX3JlZmNvdW50ID0geG1hbGxvYyAoc2l6ZW9mICgq cF9yZWZjb3VudCkpOwotICAqcF9yZWZjb3VudCA9IDI7ICAvKiBCb3RoIHNv bGliIGFuZCBvYmpmaWxlIHJlZmVyIHRvIHRoaXMgYWJmZC4gICovCi0gIGJm ZF91c3JkYXRhIChzby0+YWJmZCkgPSBwX3JlZmNvdW50OwotCiAgIGZyZWVf c2VjdGlvbl9hZGRyX2luZm8gKHNhcCk7CiAKICAgcmV0dXJuOwpJbmRleDog c3ltZmlsZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9j dnMvc3JjL3NyYy9nZGIvc3ltZmlsZS5jLHYKcmV0cmlldmluZyByZXZpc2lv biAxLjI0MwpkaWZmIC11IC1wIC11IC1yMS4yNDMgc3ltZmlsZS5jCi0tLSBz eW1maWxlLmMJMTcgQXVnIDIwMDkgMjA6MDk6MzggLTAwMDAJMS4yNDMKKysr IHN5bWZpbGUuYwkxOSBBdWcgMjAwOSAyMzozMDo0NSAtMDAwMApAQCAtMjMz Myw2ICsyMzMzLDggQEAgcmVyZWFkX3N5bWJvbHMgKHZvaWQpCiAJCW9iamZp bGUtPm9iZmQgPSBiZmRfb3BlbnIgKG9iZmRfZmlsZW5hbWUsIGdudXRhcmdl dCk7CiAJICAgICAgaWYgKG9iamZpbGUtPm9iZmQgPT0gTlVMTCkKIAkJZXJy b3IgKF8oIkNhbid0IG9wZW4gJXMgdG8gcmVhZCBzeW1ib2xzLiIpLCBvYmpm aWxlLT5uYW1lKTsKKwkgICAgICBlbHNlCisJCW9iamZpbGUtPm9iZmQgPSBn ZGJfYmZkX3JlZiAob2JqZmlsZS0+b2JmZCk7CiAJICAgICAgLyogYmZkX29w ZW5yIHNldHMgY2FjaGVhYmxlIHRvIHRydWUsIHdoaWNoIGlzIHdoYXQgd2Ug d2FudC4gICovCiAJICAgICAgaWYgKCFiZmRfY2hlY2tfZm9ybWF0IChvYmpm aWxlLT5vYmZkLCBiZmRfb2JqZWN0KSkKIAkJZXJyb3IgKF8oIkNhbid0IHJl YWQgc3ltYm9scyBmcm9tICVzOiAlcy4iKSwgb2JqZmlsZS0+bmFtZSwK --000e0cd1b430feb71e0471876261--