From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3078 invoked by alias); 6 Oct 2011 21:56:19 -0000 Received: (qmail 2918 invoked by uid 22791); 6 Oct 2011 21:56:16 -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 21:56:00 +0000 Received: from hpaq14.eem.corp.google.com (hpaq14.eem.corp.google.com [172.25.149.14]) by smtp-out.google.com with ESMTP id p96Ltwq5003953 for ; Thu, 6 Oct 2011 14:55:58 -0700 Received: from gyd8 (gyd8.prod.google.com [10.243.49.200]) by hpaq14.eem.corp.google.com with ESMTP id p96LqoLW010780 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT) for ; Thu, 6 Oct 2011 14:55:58 -0700 Received: by gyd8 with SMTP id 8so4613698gyd.3 for ; Thu, 06 Oct 2011 14:55:58 -0700 (PDT) Received: by 10.229.63.34 with SMTP id z34mr982562qch.37.1317938158191; Thu, 06 Oct 2011 14:55:58 -0700 (PDT) MIME-Version: 1.0 Received: by 10.229.63.34 with SMTP id z34mr982555qch.37.1317938158037; Thu, 06 Oct 2011 14:55:58 -0700 (PDT) Received: by 10.224.80.149 with HTTP; Thu, 6 Oct 2011 14:55:57 -0700 (PDT) In-Reply-To: <201110062125.36925.pedro@codesourcery.com> References: <20111005182705.D744E2461D1@ruffy.mtv.corp.google.com> <201110062056.25790.pedro@codesourcery.com> <201110062125.36925.pedro@codesourcery.com> Date: Thu, 06 Oct 2011 21:56: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=0016e6505d8ebef39b04aea86336 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/msg00185.txt.bz2 --0016e6505d8ebef39b04aea86336 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 2758 On Thu, Oct 6, 2011 at 1:25 PM, Pedro Alves wrote: > > On Thursday 06 October 2011 21:08:08, Doug Evans wrote: > > On Thu, Oct 6, 2011 at 12:56 PM, Pedro Alves w= rote: > > > > > > 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): Only= 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 debugging = core > > > > files of static executables (e.g., a core of gdb.threads/staticthre= ads). > > > > 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. Though I think commands shouldn't try to do too much. Otherwise one could say "Why doesn't attach automagically redo the "file" command since if the first "file" wasn't done it would anyway?" Maybe 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 Doug Evans * linux-thread-db.c (thread_db_new_objfile): Only try to load libthread_db when we load libpthread or the main symbol file. * objfiles.h (OBJF_MAINLINE): Define. * symfile.c (symbol_file_add_with_addrs_or_offsets): Pass it to allocate_objfile when appropriate. --0016e6505d8ebef39b04aea86336 Content-Type: text/plain; charset=US-ASCII; name="gdb-111006-libthread-db-2.patch.txt" Content-Disposition: attachment; filename="gdb-111006-libthread-db-2.patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gtgac6fr0 Content-length: 4169 MjAxMS0xMC0wNiAgRG91ZyBFdmFucyAgPGRqZUBnb29nbGUuY29tPgoKCSog bGludXgtdGhyZWFkLWRiLmMgKHRocmVhZF9kYl9uZXdfb2JqZmlsZSk6IE9u bHkgdHJ5IHRvIGxvYWQKCWxpYnRocmVhZF9kYiB3aGVuIHdlIGxvYWQgbGli cHRocmVhZCBvciB0aGUgbWFpbiBzeW1ib2wgZmlsZS4KCSogb2JqZmlsZXMu aCAoT0JKRl9NQUlOTElORSk6IERlZmluZS4KCSogc3ltZmlsZS5jIChzeW1i b2xfZmlsZV9hZGRfd2l0aF9hZGRyc19vcl9vZmZzZXRzKTogUGFzcyBpdCB0 bwoJYWxsb2NhdGVfb2JqZmlsZSB3aGVuIGFwcHJvcHJpYXRlLgoKSW5kZXg6 IGxpbnV4LXRocmVhZC1kYi5jCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT IGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvbGludXgtdGhyZWFkLWRiLmMsdgpy ZXRyaWV2aW5nIHJldmlzaW9uIDEuOTEKZGlmZiAtdSAtcCAtcjEuOTEgbGlu dXgtdGhyZWFkLWRiLmMKLS0tIGxpbnV4LXRocmVhZC1kYi5jCTEzIFNlcCAy MDExIDE5OjI3OjAxIC0wMDAwCTEuOTEKKysrIGxpbnV4LXRocmVhZC1kYi5j CTYgT2N0IDIwMTEgMjE6Mzk6MzIgLTAwMDAKQEAgLTEwODMsNyArMTA4Mywx NiBAQCB0aHJlYWRfZGJfbmV3X29iamZpbGUgKHN0cnVjdCBvYmpmaWxlICpv CiAgIC8qIFRoaXMgb2JzZXJ2ZXIgbXVzdCBhbHdheXMgYmUgY2FsbGVkIHdp dGggaW5mZXJpb3JfcHRpZCBzZXQKICAgICAgY29ycmVjdGx5LiAgKi8KIAot ICBpZiAob2JqZmlsZSAhPSBOVUxMKQorICBpZiAob2JqZmlsZSAhPSBOVUxM CisgICAgICAvKiBPbmx5IGNoZWNrIGZvciB0aHJlYWRfZGIgaWYgd2UgbG9h ZGVkIGxpYnB0aHJlYWQsCisJIG9yIGlmIHRoaXMgaXMgdGhlIG1haW4gc3lt Ym9sIGZpbGUuCisJIFdlIG5lZWQgdG8gY2hlY2sgT0JKRl9NQUlOTElORSBp biBjYXNlIHRoaXMgaXMgYSBzdGF0aWNhbGx5CisJIGxpbmtlZCBleGVjdXRh YmxlLgorCSBGb3IgZHluYW1pY2FsbHkgbGlua2VkIGV4ZWN1dGFibGVzLCBs aWJwdGhyZWFkIGNhbiBiZSBuZWFyIHRoZSBlbmQKKwkgb2YgdGhlIGxpc3Qg b2Ygc2hhcmVkIGxpYnJhcmllcyB0byBsb2FkLCBhbmQgaW4gYW4gYXBwIG9m IHNldmVyYWwKKwkgdGhvdXNhbmQgc2hhcmVkIGxpYnJhcmllcywgdGhpcyBj YW4gb3RoZXJ3aXNlIGJlIHBhaW5mdWwuICAqLworICAgICAgJiYgKChvYmpm aWxlLT5mbGFncyAmIE9CSkZfTUFJTkxJTkUpICE9IDAKKwkgIHx8IGxpYnB0 aHJlYWRfbmFtZV9wIChvYmpmaWxlLT5uYW1lKSkpCiAgICAgY2hlY2tfZm9y X3RocmVhZF9kYiAoKTsKIH0KIApJbmRleDogb2JqZmlsZXMuaAo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL29i amZpbGVzLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuODUKZGlmZiAtdSAt cCAtcjEuODUgb2JqZmlsZXMuaAotLS0gb2JqZmlsZXMuaAkxNCBKdW4gMjAx MSAxNjo0OTo0MSAtMDAwMAkxLjg1CisrKyBvYmpmaWxlcy5oCTYgT2N0IDIw MTEgMjE6Mzk6MzIgLTAwMDAKQEAgLTE5Niw3ICsxOTYsOCBAQCBzdHJ1Y3Qg b2JqZmlsZQogCiAgICAgQ09SRV9BRERSIGFkZHJfbG93OwogCi0gICAgLyog U29tZSBmbGFnIGJpdHMgZm9yIHRoaXMgb2JqZmlsZS4gICovCisgICAgLyog U29tZSBmbGFnIGJpdHMgZm9yIHRoaXMgb2JqZmlsZS4KKyAgICAgICBUaGUg dmFsdWVzIGFyZSBkZWZpbmVkIGJ5IE9CSkZfKi4gICovCiAKICAgICB1bnNp Z25lZCBzaG9ydCBmbGFnczsKIApAQCAtNDM0LDYgKzQzNSwxMSBAQCBzdHJ1 Y3Qgb2JqZmlsZQogCiAjZGVmaW5lIE9CSkZfUFNZTVRBQlNfUkVBRCAoMSA8 PCA0KQogCisvKiBTZXQgaWYgdGhpcyBpcyB0aGUgbWFpbiBzeW1ib2wgZmls ZQorICAgKGFzIG9wcG9zZWQgdG8gc3ltYm9sIGZpbGUgZm9yIGR5bmFtaWNh bGx5IGxvYWRlZCBjb2RlKS4gICovCisKKyNkZWZpbmUgT0JKRl9NQUlOTElO RSAoMSA8PCA1KQorCiAvKiBUaGUgb2JqZWN0IGZpbGUgdGhhdCBjb250YWlu cyB0aGUgcnVudGltZSBjb21tb24gbWluaW1hbCBzeW1ib2xzCiAgICBmb3Ig U3VuT1M0LiAgTm90ZSB0aGF0IHRoaXMgb2JqZmlsZSBoYXMgbm8gYXNzb2Np YXRlZCBCRkQuICAqLwogCkluZGV4OiBzeW1maWxlLmMKPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9zeW1maWxl LmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzE2CmRpZmYgLXUgLXAgLXIx LjMxNiBzeW1maWxlLmMKLS0tIHN5bWZpbGUuYwkyOSBTZXAgMjAxMSAwMjow NDoyNSAtMDAwMAkxLjMxNgorKysgc3ltZmlsZS5jCTYgT2N0IDIwMTEgMjE6 Mzk6MzQgLTAwMDAKQEAgLTEwODQsNiArMTA4NCw3IEBAIHN5bWJvbF9maWxl X2FkZF93aXRoX2FkZHJzX29yX29mZnNldHMgKGIKICAgY29uc3QgaW50IHNo b3VsZF9wcmludCA9ICgoZnJvbV90dHkgfHwgaW5mb192ZXJib3NlKQogCQkJ ICAgICYmIChyZWFkbm93X3N5bWJvbF9maWxlcwogCQkJCXx8IChhZGRfZmxh Z3MgJiBTWU1GSUxFX05PX1JFQUQpID09IDApKTsKKyAgY29uc3QgaW50IG1h aW5saW5lID0gYWRkX2ZsYWdzICYgU1lNRklMRV9NQUlOTElORTsKIAogICBp ZiAocmVhZG5vd19zeW1ib2xfZmlsZXMpCiAgICAgewpAQCAtMTEwMiw3ICsx MTAzLDcgQEAgc3ltYm9sX2ZpbGVfYWRkX3dpdGhfYWRkcnNfb3Jfb2Zmc2V0 cyAoYgogICAgICAgJiYgIXF1ZXJ5IChfKCJMb2FkIG5ldyBzeW1ib2wgdGFi bGUgZnJvbSBcIiVzXCI/ICIpLCBuYW1lKSkKICAgICBlcnJvciAoXygiTm90 IGNvbmZpcm1lZC4iKSk7CiAKLSAgb2JqZmlsZSA9IGFsbG9jYXRlX29iamZp bGUgKGFiZmQsIGZsYWdzKTsKKyAgb2JqZmlsZSA9IGFsbG9jYXRlX29iamZp bGUgKGFiZmQsIGZsYWdzIHwgKG1haW5saW5lID8gT0JKRl9NQUlOTElORSA6 IDApKTsKICAgZGlzY2FyZF9jbGVhbnVwcyAobXlfY2xlYW51cHMpOwogCiAg IGlmIChwYXJlbnQpCg== --0016e6505d8ebef39b04aea86336--