From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10560 invoked by alias); 6 Mar 2009 22:06:24 -0000 Received: (qmail 10551 invoked by uid 22791); 6 Mar 2009 22:06:23 -0000 X-SWARE-Spam-Status: No, hits=-1.1 required=5.0 tests=AWL,BAYES_00,KAM_STOCKGEN,SARE_MSGID_LONG40,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; Fri, 06 Mar 2009 22:06:18 +0000 Received: from wpaz37.hot.corp.google.com (wpaz37.hot.corp.google.com [172.24.198.101]) by smtp-out.google.com with ESMTP id n26M6E3a016856 for ; Fri, 6 Mar 2009 22:06:15 GMT Received: from wf-out-1314.google.com (wfd26.prod.google.com [10.142.4.26]) by wpaz37.hot.corp.google.com with ESMTP id n26M64aB009753 for ; Fri, 6 Mar 2009 14:06:13 -0800 Received: by wf-out-1314.google.com with SMTP id 26so746210wfd.32 for ; Fri, 06 Mar 2009 14:06:13 -0800 (PST) MIME-Version: 1.0 Received: by 10.142.50.6 with SMTP id x6mr1270980wfx.270.1236377172981; Fri, 06 Mar 2009 14:06:12 -0800 (PST) In-Reply-To: <20090306174822.GJ3744@adacore.com> References: <20090223010759.GA30997@adacore.com> <8ac60eac0902231012lb42bcb1q8b8cf19ad2ac192@mail.gmail.com> <8ac60eac0903021830w363783ear7d4c8fc1177d6448@mail.gmail.com> <8ac60eac0903041124s1aafb562u225f268c4d1511dd@mail.gmail.com> <20090305200415.GC3744@adacore.com> <8ac60eac0903051546r1eaffc89tf1f35b21e6dc1b40@mail.gmail.com> <8ac60eac0903051906r5d41990bwcaccdfb4accef562@mail.gmail.com> <20090306174822.GJ3744@adacore.com> Date: Fri, 06 Mar 2009 22:06:00 -0000 Message-ID: <8ac60eac0903061406t610ba1a1y1c62e5ee30332c7c@mail.gmail.com> Subject: Re: [patch] Fix a crash when displaying variables from shared library. From: Paul Pluzhnikov To: Joel Brobecker Cc: tromey@redhat.com, Pedro Alves , gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=000e0cd1a67634380e04647a7e4b 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 Mail-Followup-To: gdb-patches@sourceware.org X-SW-Source: 2009-03/txt/msg00090.txt.bz2 --000e0cd1a67634380e04647a7e4b Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-length: 995 On Fri, Mar 6, 2009 at 9:48 AM, Joel Brobecker wrote: >> C) the call to "solib_address (block->startaddr)" should be replaced with >> something like "solib_contains_p (solib, block->startaddr)" (which would >> then work independently of the so_list_head). > > Duh! Yes - this sounds like a pretty simple way to do this. We know > which solib we're trying to match our expression against, why are we > iterating over all SOs again? I like your suggestion. > > The body of solib_contains_p (can we rename it to "solib_contains_address" > or "solib_has_address") can be extracted from solib_address. Attached patch implements this; regtested on Linux/x86_64 with no regressions. Thanks, -- Paul Pluzhnikov 2009-03-06 Paul Pluzhnikov * solib.c (solib_contains_address_p): New function. (solib_name_from_address): Use it. * printcmd.c (display_uses_solib_p): Use it. * solib.h (solib_contains_address_p): Declare it. --000e0cd1a67634380e04647a7e4b Content-Type: text/plain; charset=US-ASCII; name="gdb-display-crash-20090306.txt" Content-Disposition: attachment; filename="gdb-display-crash-20090306.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_frzf0sc20 Content-length: 3595 SW5kZXg6IHByaW50Y21kLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg ZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9wcmludGNtZC5jLHYKcmV0cmlldmlu ZyByZXZpc2lvbiAxLjE0NgpkaWZmIC11IC1wIC11IC1yMS4xNDYgcHJpbnRj bWQuYwotLS0gcHJpbnRjbWQuYwk2IE1hciAyMDA5IDE4OjUxOjA1IC0wMDAw CTEuMTQ2CisrKyBwcmludGNtZC5jCTYgTWFyIDIwMDkgMjA6MzI6NTkgLTAw MDAKQEAgLTE3NjcsNyArMTc2Nyw3IEBAIGRpc3BsYXlfdXNlc19zb2xpYl9w IChjb25zdCBzdHJ1Y3QgZGlzcGwKICAgc3RydWN0IGV4cHJlc3Npb24gKmNv bnN0IGV4cCA9IGQtPmV4cDsKIAogICBpZiAoZC0+YmxvY2sgIT0gTlVMTAot ICAgICAgJiYgc29saWJfbmFtZV9mcm9tX2FkZHJlc3MgKGQtPmJsb2NrLT5z dGFydGFkZHIpID09IHNvbGliLT5zb19uYW1lKQorICAgICAgJiYgc29saWJf Y29udGFpbnNfYWRkcmVzc19wIChzb2xpYiwgZC0+YmxvY2stPnN0YXJ0YWRk cikpCiAgICAgcmV0dXJuIDE7CiAKICAgZm9yIChpID0gMDsgaSA8IGV4cC0+ bmVsdHM7ICkKQEAgLTE3ODMsNyArMTc4Myw3IEBAIGRpc3BsYXlfdXNlc19z b2xpYl9wIChjb25zdCBzdHJ1Y3QgZGlzcGwKIAkgICAgU1lNQk9MX09CSl9T RUNUSU9OIChzeW1ib2wpOwogCiAJICBpZiAoYmxvY2sgIT0gTlVMTAotCSAg ICAgICYmIHNvbGliX25hbWVfZnJvbV9hZGRyZXNzIChibG9jay0+c3RhcnRh ZGRyKSA9PSBzb2xpYi0+c29fbmFtZSkKKwkgICAgICAmJiBzb2xpYl9jb250 YWluc19hZGRyZXNzX3AgKHNvbGliLCBibG9jay0+c3RhcnRhZGRyKSkKIAkg ICAgcmV0dXJuIDE7CiAKIAkgIGlmIChzZWN0aW9uICYmIHNlY3Rpb24tPm9i amZpbGUgPT0gc29saWItPm9iamZpbGUpCkluZGV4OiBzb2xpYi5jCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIv c29saWIuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMTMKZGlmZiAtdSAt cCAtdSAtcjEuMTEzIHNvbGliLmMKLS0tIHNvbGliLmMJNiBNYXIgMjAwOSAx ODo1MTowNSAtMDAwMAkxLjExMworKysgc29saWIuYwk2IE1hciAyMDA5IDIw OjMyOjU5IC0wMDAwCkBAIC04MzQsNiArODM0LDIxIEBAIGluZm9fc2hhcmVk bGlicmFyeV9jb21tYW5kIChjaGFyICppZ25vcmUKICAgICB9CiB9CiAKKy8q IFJldHVybiAxIGlmIEFERFJFU1MgbGllcyB3aXRoaW4gU09MSUIuICAqLwor CitpbnQKK3NvbGliX2NvbnRhaW5zX2FkZHJlc3NfcCAoY29uc3Qgc3RydWN0 IHNvX2xpc3QgKmNvbnN0IHNvbGliLAorCQkJICBDT1JFX0FERFIgYWRkcmVz cykKK3sKKyAgc3RydWN0IHNlY3Rpb25fdGFibGUgKnA7CisKKyAgZm9yIChw ID0gc29saWItPnNlY3Rpb25zOyBwIDwgc29saWItPnNlY3Rpb25zX2VuZDsg cCsrKQorICAgIGlmIChwLT5hZGRyIDw9IGFkZHJlc3MgJiYgYWRkcmVzcyA8 IHAtPmVuZGFkZHIpCisgICAgICByZXR1cm4gMTsKKworICByZXR1cm4gMDsK K30KKwogLyoKIAogICAgR0xPQkFMIEZVTkNUSU9OCkBAIC04NjIsMTUgKzg3 Nyw4IEBAIHNvbGliX25hbWVfZnJvbV9hZGRyZXNzIChDT1JFX0FERFIgYWRk cmUKICAgc3RydWN0IHNvX2xpc3QgKnNvID0gMDsJLyogbGluayBtYXAgc3Rh dGUgdmFyaWFibGUgKi8KIAogICBmb3IgKHNvID0gc29fbGlzdF9oZWFkOyBz bzsgc28gPSBzby0+bmV4dCkKLSAgICB7Ci0gICAgICBzdHJ1Y3Qgc2VjdGlv bl90YWJsZSAqcDsKLQotICAgICAgZm9yIChwID0gc28tPnNlY3Rpb25zOyBw IDwgc28tPnNlY3Rpb25zX2VuZDsgcCsrKQotCXsKLQkgIGlmIChwLT5hZGRy IDw9IGFkZHJlc3MgJiYgYWRkcmVzcyA8IHAtPmVuZGFkZHIpCi0JICAgIHJl dHVybiAoc28tPnNvX25hbWUpOwotCX0KLSAgICB9CisgICAgaWYgKHNvbGli X2NvbnRhaW5zX2FkZHJlc3NfcCAoc28sIGFkZHJlc3MpKQorICAgICAgcmV0 dXJuIChzby0+c29fbmFtZSk7CiAKICAgcmV0dXJuICgwKTsKIH0KSW5kZXg6 IHNvbGliLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2 cy9zcmMvc3JjL2dkYi9zb2xpYi5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAx LjIyCmRpZmYgLXUgLXAgLXUgLXIxLjIyIHNvbGliLmgKLS0tIHNvbGliLmgJ NiBNYXIgMjAwOSAxODo1MTowNSAtMDAwMAkxLjIyCisrKyBzb2xpYi5oCTYg TWFyIDIwMDkgMjA6MzI6NTkgLTAwMDAKQEAgLTQ3LDYgKzQ3LDEwIEBAIGV4 dGVybiB2b2lkIHNvbGliX2NyZWF0ZV9pbmZlcmlvcl9ob29rICgKIAogZXh0 ZXJuIGNoYXIgKnNvbGliX25hbWVfZnJvbV9hZGRyZXNzIChDT1JFX0FERFIp OwogCisvKiBSZXR1cm4gMSBpZiBBRERSIGxpZXMgd2l0aGluIFNPTElCLiAg Ki8KKworZXh0ZXJuIGludCBzb2xpYl9jb250YWluc19hZGRyZXNzX3AgKGNv bnN0IHN0cnVjdCBzb19saXN0ICosIENPUkVfQUREUik7CisKIC8qIFJldHVy biAxIGlmIFBDIGxpZXMgaW4gdGhlIGR5bmFtaWMgc3ltYm9sIHJlc29sdXRp b24gY29kZSBvZiB0aGUKICAgIHJ1biB0aW1lIGxvYWRlci4gICovCiAK --000e0cd1a67634380e04647a7e4b--