From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7036 invoked by alias); 6 Oct 2011 22:06:04 -0000 Received: (qmail 7016 invoked by uid 22791); 6 Oct 2011 22:06:02 -0000 X-SWARE-Spam-Status: No, hits=-2.5 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,RP_MATCHES_RCVD,SPF_HELO_PASS,TW_BJ X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (74.125.121.67) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 06 Oct 2011 22:05:48 +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 p96M5kY7005112 for ; Thu, 6 Oct 2011 15:05:46 -0700 Received: from yxn22 (yxn22.prod.google.com [10.190.4.86]) by wpaz24.hot.corp.google.com with ESMTP id p96M5k0U032172 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT) for ; Thu, 6 Oct 2011 15:05:46 -0700 Received: by yxn22 with SMTP id 22so4150879yxn.1 for ; Thu, 06 Oct 2011 15:05:45 -0700 (PDT) Received: by 10.224.197.193 with SMTP id el1mr7357qab.68.1317938745891; Thu, 06 Oct 2011 15:05:45 -0700 (PDT) MIME-Version: 1.0 Received: by 10.224.197.193 with SMTP id el1mr7345qab.68.1317938745575; Thu, 06 Oct 2011 15:05:45 -0700 (PDT) Received: by 10.224.80.149 with HTTP; Thu, 6 Oct 2011 15:05:45 -0700 (PDT) In-Reply-To: References: <20111005182705.D744E2461D1@ruffy.mtv.corp.google.com> <201110062056.25790.pedro@codesourcery.com> <201110062125.36925.pedro@codesourcery.com> Date: Thu, 06 Oct 2011 22:06:00 -0000 Message-ID: Subject: Re: [RFA] Only try to load libthread_db when we load libpthread. From: Doug Evans To: Pedro Alves Cc: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=20cf300fb351c408f004aea88640 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: 2011-10/txt/msg00186.txt.bz2 --20cf300fb351c408f004aea88640 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 3059 On Thu, Oct 6, 2011 at 2:55 PM, Doug Evans wrote: > > On Thu, Oct 6, 2011 at 1:25 PM, Pedro Alves wrot= e: > > > > On Thursday 06 October 2011 21:08:08, Doug Evans wrote: > > > On Thu, Oct 6, 2011 at 12:56 PM, Pedro Alves = wrote: > > > > > > > > On Thursday 06 October 2011 12:22:24, Pedro Alves wrote: > > > > > On Wednesday 05 October 2011 19:27:05, Doug Evans wrote: > > > > > > 2011-10-05 =A0Doug Evans =A0 > > > > > > > > > > > > =A0 =A0 =A0 =A0 * linux-thread-db.c (thread_db_new_objfile): On= ly try to load > > > > > > =A0 =A0 =A0 =A0 libthread_db when we load libpthread. > > > > > > > > > > Makes sense to me. > > > > > > > > > > > No regressions in amd64-linux, > > > > > > but I can imagine it misses some cases. > > > > > > > > > > Yeah. =A0I think we'll no longer activate thread_db when debuggin= g core > > > > > files of static executables (e.g., a core of gdb.threads/staticth= reads). > > > > > It works with live debugging since we call check_for_thread_db > > > > > from linux_child_post_attach/linux_child_post_startup_inferior. > > > > > Maybe moving that to an inferior_created observer in > > > > > linux-thread-db.c would work. > > > > > > > > And all the talk about executables made me realize something else. = =A0:-) > > > > > > > > For static threaded executables, we'll want to check for thread > > > > db when the symbols of the main executable are (re)loaded too. > > > > I don't recall off hand if there's a flag in the objfile to > > > > know that it's from the main executable though. > > > > > > In what scenario? > > > [what would the user type?] > > > > (gdb) file wrong_executable > > (gdb) attach PID or core-file core.1234 > > whooops! > > (gdb) file right_executable > > What would the user expect to be able to do next? > I ask because I played with it, and things don't necessarily work, > e.g. if wrong_executable didn't have libpthread. > Perhaps more smarts could be added to file to make this work, or maybe > a new command could be added to (effectively) reattach so that the > initialization that attach does was redone (in case one is > uncomfortable with having file do that. =A0Though I think commands > shouldn't try to do too much. =A0Otherwise one could say "Why doesn't > attach automagically redo the "file" command since if the first "file" > wasn't done it would anyway?" =A0Maybe attach should at least warn the > user though). > > Anyways, I think checking for the main symbol file is reasonable (even > if more work is needed), so how about this? > > 2011-10-06 =A0Doug Evans =A0 > > =A0 =A0 =A0 =A0* linux-thread-db.c (thread_db_new_objfile): Only try to l= oad > =A0 =A0 =A0 =A0libthread_db when we load libpthread or the main symbol fi= le. > =A0 =A0 =A0 =A0* objfiles.h (OBJF_MAINLINE): Define. > =A0 =A0 =A0 =A0* symfile.c (symbol_file_add_with_addrs_or_offsets): Pass = it to > =A0 =A0 =A0 =A0allocate_objfile when appropriate. Blech, I forgot one bit of cleanup. Revised patch attached. --20cf300fb351c408f004aea88640 Content-Type: text/plain; charset=US-ASCII; name="gdb-111006-libthread-db-3.patch.txt" Content-Disposition: attachment; filename="gdb-111006-libthread-db-3.patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gtgaoxjb1 Content-length: 4563 MjAxMS0xMC0wNiAgRG91ZyBFdmFucyAgPGRqZUBnb29nbGUuY29tPgoKCSog bGludXgtdGhyZWFkLWRiLmMgKHRocmVhZF9kYl9uZXdfb2JqZmlsZSk6IE9u bHkgdHJ5IHRvIGxvYWQKCWxpYnRocmVhZF9kYiB3aGVuIHdlIGxvYWQgbGli cHRocmVhZCBvciB0aGUgbWFpbiBzeW1ib2wgZmlsZS4KCSogb2JqZmlsZXMu aCAoT0JKRl9NQUlOTElORSk6IERlZmluZS4KCSogc3ltZmlsZS5jIChzeW1i b2xfZmlsZV9hZGRfd2l0aF9hZGRyc19vcl9vZmZzZXRzKTogUGFzcyBpdCB0 bwoJYWxsb2NhdGVfb2JqZmlsZSB3aGVuIGFwcHJvcHJpYXRlLgoKSW5kZXg6 IGxpbnV4LXRocmVhZC1kYi5jCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT IGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvbGludXgtdGhyZWFkLWRiLmMsdgpy ZXRyaWV2aW5nIHJldmlzaW9uIDEuOTEKZGlmZiAtdSAtcCAtcjEuOTEgbGlu dXgtdGhyZWFkLWRiLmMKLS0tIGxpbnV4LXRocmVhZC1kYi5jCTEzIFNlcCAy MDExIDE5OjI3OjAxIC0wMDAwCTEuOTEKKysrIGxpbnV4LXRocmVhZC1kYi5j CTYgT2N0IDIwMTEgMjI6MDM6MTUgLTAwMDAKQEAgLTEwODMsNyArMTA4Mywx NiBAQCB0aHJlYWRfZGJfbmV3X29iamZpbGUgKHN0cnVjdCBvYmpmaWxlICpv CiAgIC8qIFRoaXMgb2JzZXJ2ZXIgbXVzdCBhbHdheXMgYmUgY2FsbGVkIHdp dGggaW5mZXJpb3JfcHRpZCBzZXQKICAgICAgY29ycmVjdGx5LiAgKi8KIAot ICBpZiAob2JqZmlsZSAhPSBOVUxMKQorICBpZiAob2JqZmlsZSAhPSBOVUxM CisgICAgICAvKiBPbmx5IGNoZWNrIGZvciB0aHJlYWRfZGIgaWYgd2UgbG9h ZGVkIGxpYnB0aHJlYWQsCisJIG9yIGlmIHRoaXMgaXMgdGhlIG1haW4gc3lt Ym9sIGZpbGUuCisJIFdlIG5lZWQgdG8gY2hlY2sgT0JKRl9NQUlOTElORSBp biBjYXNlIHRoaXMgaXMgYSBzdGF0aWNhbGx5CisJIGxpbmtlZCBleGVjdXRh YmxlLgorCSBGb3IgZHluYW1pY2FsbHkgbGlua2VkIGV4ZWN1dGFibGVzLCBs aWJwdGhyZWFkIGNhbiBiZSBuZWFyIHRoZSBlbmQKKwkgb2YgdGhlIGxpc3Qg b2Ygc2hhcmVkIGxpYnJhcmllcyB0byBsb2FkLCBhbmQgaW4gYW4gYXBwIG9m IHNldmVyYWwKKwkgdGhvdXNhbmQgc2hhcmVkIGxpYnJhcmllcywgdGhpcyBj YW4gb3RoZXJ3aXNlIGJlIHBhaW5mdWwuICAqLworICAgICAgJiYgKChvYmpm aWxlLT5mbGFncyAmIE9CSkZfTUFJTkxJTkUpICE9IDAKKwkgIHx8IGxpYnB0 aHJlYWRfbmFtZV9wIChvYmpmaWxlLT5uYW1lKSkpCiAgICAgY2hlY2tfZm9y X3RocmVhZF9kYiAoKTsKIH0KIApJbmRleDogb2JqZmlsZXMuaAo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL29i amZpbGVzLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuODUKZGlmZiAtdSAt cCAtcjEuODUgb2JqZmlsZXMuaAotLS0gb2JqZmlsZXMuaAkxNCBKdW4gMjAx MSAxNjo0OTo0MSAtMDAwMAkxLjg1CisrKyBvYmpmaWxlcy5oCTYgT2N0IDIw MTEgMjI6MDM6MTUgLTAwMDAKQEAgLTE5Niw3ICsxOTYsOCBAQCBzdHJ1Y3Qg b2JqZmlsZQogCiAgICAgQ09SRV9BRERSIGFkZHJfbG93OwogCi0gICAgLyog U29tZSBmbGFnIGJpdHMgZm9yIHRoaXMgb2JqZmlsZS4gICovCisgICAgLyog U29tZSBmbGFnIGJpdHMgZm9yIHRoaXMgb2JqZmlsZS4KKyAgICAgICBUaGUg dmFsdWVzIGFyZSBkZWZpbmVkIGJ5IE9CSkZfKi4gICovCiAKICAgICB1bnNp Z25lZCBzaG9ydCBmbGFnczsKIApAQCAtNDM0LDYgKzQzNSwxMSBAQCBzdHJ1 Y3Qgb2JqZmlsZQogCiAjZGVmaW5lIE9CSkZfUFNZTVRBQlNfUkVBRCAoMSA8 PCA0KQogCisvKiBTZXQgaWYgdGhpcyBpcyB0aGUgbWFpbiBzeW1ib2wgZmls ZQorICAgKGFzIG9wcG9zZWQgdG8gc3ltYm9sIGZpbGUgZm9yIGR5bmFtaWNh bGx5IGxvYWRlZCBjb2RlKS4gICovCisKKyNkZWZpbmUgT0JKRl9NQUlOTElO RSAoMSA8PCA1KQorCiAvKiBUaGUgb2JqZWN0IGZpbGUgdGhhdCBjb250YWlu cyB0aGUgcnVudGltZSBjb21tb24gbWluaW1hbCBzeW1ib2xzCiAgICBmb3Ig U3VuT1M0LiAgTm90ZSB0aGF0IHRoaXMgb2JqZmlsZSBoYXMgbm8gYXNzb2Np YXRlZCBCRkQuICAqLwogCkluZGV4OiBzeW1maWxlLmMKPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9zeW1maWxl LmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzE2CmRpZmYgLXUgLXAgLXIx LjMxNiBzeW1maWxlLmMKLS0tIHN5bWZpbGUuYwkyOSBTZXAgMjAxMSAwMjow NDoyNSAtMDAwMAkxLjMxNgorKysgc3ltZmlsZS5jCTYgT2N0IDIwMTEgMjI6 MDM6MTUgLTAwMDAKQEAgLTEwODEsNiArMTA4MSw3IEBAIHN5bWJvbF9maWxl X2FkZF93aXRoX2FkZHJzX29yX29mZnNldHMgKGIKICAgc3RydWN0IGNsZWFu dXAgKm15X2NsZWFudXBzOwogICBjb25zdCBjaGFyICpuYW1lID0gYmZkX2dl dF9maWxlbmFtZSAoYWJmZCk7CiAgIGNvbnN0IGludCBmcm9tX3R0eSA9IGFk ZF9mbGFncyAmIFNZTUZJTEVfVkVSQk9TRTsKKyAgY29uc3QgaW50IG1haW5s aW5lID0gYWRkX2ZsYWdzICYgU1lNRklMRV9NQUlOTElORTsKICAgY29uc3Qg aW50IHNob3VsZF9wcmludCA9ICgoZnJvbV90dHkgfHwgaW5mb192ZXJib3Nl KQogCQkJICAgICYmIChyZWFkbm93X3N5bWJvbF9maWxlcwogCQkJCXx8IChh ZGRfZmxhZ3MgJiBTWU1GSUxFX05PX1JFQUQpID09IDApKTsKQEAgLTEwOTcs MTIgKzEwOTgsMTIgQEAgc3ltYm9sX2ZpbGVfYWRkX3dpdGhfYWRkcnNfb3Jf b2Zmc2V0cyAoYgogICAgICBpbnRlcmFjdGl2ZWx5IHdpcGluZyBvdXQgYW55 IGV4aXN0aW5nIHN5bWJvbHMuICAqLwogCiAgIGlmICgoaGF2ZV9mdWxsX3N5 bWJvbHMgKCkgfHwgaGF2ZV9wYXJ0aWFsX3N5bWJvbHMgKCkpCi0gICAgICAm JiAoYWRkX2ZsYWdzICYgU1lNRklMRV9NQUlOTElORSkKKyAgICAgICYmIG1h aW5saW5lCiAgICAgICAmJiBmcm9tX3R0eQogICAgICAgJiYgIXF1ZXJ5IChf KCJMb2FkIG5ldyBzeW1ib2wgdGFibGUgZnJvbSBcIiVzXCI/ICIpLCBuYW1l KSkKICAgICBlcnJvciAoXygiTm90IGNvbmZpcm1lZC4iKSk7CiAKLSAgb2Jq ZmlsZSA9IGFsbG9jYXRlX29iamZpbGUgKGFiZmQsIGZsYWdzKTsKKyAgb2Jq ZmlsZSA9IGFsbG9jYXRlX29iamZpbGUgKGFiZmQsIGZsYWdzIHwgKG1haW5s aW5lID8gT0JKRl9NQUlOTElORSA6IDApKTsKICAgZGlzY2FyZF9jbGVhbnVw cyAobXlfY2xlYW51cHMpOwogCiAgIGlmIChwYXJlbnQpCg== --20cf300fb351c408f004aea88640--