From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16852 invoked by alias); 8 Aug 2011 11:35:10 -0000 Received: (qmail 16756 invoked by uid 22791); 8 Aug 2011 11:35:09 -0000 X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE X-Spam-Check-By: sourceware.org Received: from nm4.bt.bullet.mail.ukl.yahoo.com (HELO nm4.bt.bullet.mail.ukl.yahoo.com) (217.146.183.202) by sourceware.org (qpsmtpd/0.43rc1) with SMTP; Mon, 08 Aug 2011 11:34:44 +0000 Received: from [217.146.183.197] by nm4.bt.bullet.mail.ukl.yahoo.com with NNFMP; 08 Aug 2011 11:34:43 -0000 Received: from [217.146.183.205] by tm3.bt.bullet.mail.ukl.yahoo.com with NNFMP; 08 Aug 2011 11:34:43 -0000 Received: from [127.0.0.1] by omp1003.bt.mail.ukl.yahoo.com with NNFMP; 08 Aug 2011 11:34:43 -0000 Received: (qmail 12529 invoked by uid 60001); 8 Aug 2011 11:34:42 -0000 Received: from [86.148.25.87] by web86707.mail.ird.yahoo.com via HTTP; Mon, 08 Aug 2011 12:34:42 BST References: <1311947955.89527.YahooMailRC@web86708.mail.ird.yahoo.com> <20110730024405.GJ5177@adacore.com> <201107301231.58274.pedro@codesourcery.com> <1312026270.62521.YahooMailRC@web86705.mail.ird.yahoo.com> Message-ID: <1312803282.12167.YahooMailRC@web86707.mail.ird.yahoo.com> Date: Mon, 08 Aug 2011 11:35:00 -0000 From: "pfee@talk21.com" Subject: Re: Enhancement - show old and new thread info when switching during debugging To: Pedro Alves , gdb-patches@sourceware.org Cc: Joel Brobecker , Tom Tromey In-Reply-To: <1312026270.62521.YahooMailRC@web86705.mail.ird.yahoo.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="0-953148641-1312803282=:12167" 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-08/txt/msg00138.txt.bz2 --0-953148641-1312803282=:12167 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Content-length: 2379 > > What he wants is the last user selected thread, > > not the thread that happens to be current when switch_to_thread > > is called. > >=20 > > - user resumes with thread 1 selected > > - thread 2 hits breakpoint, gdb switches to thread 2 > > - breakpoint doesn't cause stop, target is re-resumed > > - thread 3 hits breakpoint, gdb switches to thread 3 > > - breakpoint causes stop, previous_inferior_ptid is > > thread 1, but the last switch_to_thread would have > > recorded $previous_thread as thread 2 > >=20 > > If you want a convenience variable, please model it on > > $_thread --- see end of thread.c:_initialize_thread. > >=20 > > Note that the previously selected thread may not exist anymore, > > it may have exited meanwhile, for example, or the inferior > > exec'ed. > >=20 > > --=20 > > Pedro Alves > > >=20 > Hi Pedro, >=20 > I agree with your example, the previous_inferior_ptid in infrun.c,=20 >normal_stop()=20 > > has the information I need. I'll try and use that to populate the new=20 > convenience variable. >=20 > I'll a try to construct a test program that creates a scenario where the= =20 > previous thread as died by the time normal_stop() executes. >=20 Hello again, I've looked into convenience variables and have developed a new patch. The= gdb=20 output when switching threads is no longer altered, instead the $_prev_thre= ad=20 convenience variable can be used to switch back to the previous thread. When making this patch I renamed an existing variable from=20 previous_inferior_ptid to current_inferior_ptid. That way we have values t= hat=20 move from inferior_ptid (the new ptid) to current_inferior_ptid and finally= to=20=20 previous_inferior_ptid (which is exposed via the convenience variable). Th= is=20 seemed better than leaving the variables names as was and introducing somet= hing=20 confusing like previous_previous_inferior_ptid. By the way, I've made the patches against GDB trunk, I presume that's prefe= rred=20 over GDB 7.3. Comments welcome. Thanks, Paul 2011-08-08 Paul Fee * inferior.h: Add function for handling $_prev_thread convenience varia= ble * infrun.c: Rename previous_inferior_ptid to current_inferior_ptid. Add function for handling $_prev_thread convenience variable * thread.c: Add $_prev_thread convenience variable --0-953148641-1312803282=:12167 Content-Type: application/octet-stream; name="prev_thread.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="prev_thread.patch" Content-length: 7589 SW5kZXg6IGluZmVyaW9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg ZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9pbmZlcmlvci5oLHYKcmV0cmlldmlu ZyByZXZpc2lvbiAxLjE2MQpkaWZmIC1jIC1wIC1yMS4xNjEgaW5mZXJpb3Iu aAoqKiogaW5mZXJpb3IuaAkyMSBKdWwgMjAxMSAyMzo0NjowOCAtMDAwMAkx LjE2MQotLS0gaW5mZXJpb3IuaAk4IEF1ZyAyMDExIDExOjIzOjU5IC0wMDAw CioqKioqKioqKioqKioqKiBleHRlcm4gaW50IHN0b3Bfb25fc29saWJfZXZl bnRzOwoqKiogMjA0LDIwOSAqKioqCi0tLSAyMDQsMjEyIC0tLS0KICAKICBl eHRlcm4gdm9pZCBzdGFydF9yZW1vdGUgKGludCBmcm9tX3R0eSk7CiAgCisg ZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqcHJldl90aHJlYWRfaWRfbWFrZV92YWx1 ZSAoc3RydWN0IGdkYmFyY2ggKiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaW50ZXJuYWx2YXIg Kik7CisgCiAgZXh0ZXJuIHZvaWQgbm9ybWFsX3N0b3AgKHZvaWQpOwogIAog IGV4dGVybiBpbnQgc2lnbmFsX3N0b3Bfc3RhdGUgKGludCk7CkluZGV4OiBp bmZydW4uYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz L3NyYy9zcmMvZ2RiL2luZnJ1bi5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAx LjQ5OApkaWZmIC1jIC1wIC1yMS40OTggaW5mcnVuLmMKKioqIGluZnJ1bi5j CTQgQXVnIDIwMTEgMTk6MTA6MTIgLTAwMDAJMS40OTgKLS0tIGluZnJ1bi5j CTggQXVnIDIwMTEgMTE6MjQ6MDIgLTAwMDAKKioqKioqKioqKioqKioqIGlu dCBzeW5jX2V4ZWN1dGlvbiA9IDA7CioqKiAxMjUsMTMwICoqKioKLS0tIDEy NSwxMzYgLS0tLQogICAgIHdoZW4gdGhlIGluZmVyaW9yIHN0b3BwZWQgaW4g YSBkaWZmZXJlbnQgdGhyZWFkIHRoYW4gaXQgaGFkIGJlZW4KICAgICBydW5u aW5nIGluLiAgKi8KICAKKyBzdGF0aWMgcHRpZF90IGN1cnJlbnRfaW5mZXJp b3JfcHRpZDsKKyAKKyAvKiBWYWx1ZXMgbW92ZSBmcm9tIGludGVyaW9yX3B0 aWQgdG8gY3VycmVudF9pbmZlcmlvcl9wdGlkIHRvCisgICogcHJldmlvdXNf aW5mZXJpb3JfcHRpZC4gIFRoZSBwcmV2aW91cyB2YWx1ZSBpcyBleHBvc2Vk IHRvIHRoZQorICAqIHVzZXIgdGhyb3VnaCB0aGUgJF9wcmV2X3RocmVhZCBj b252ZW5pZW5jZSB2YXJpYWJsZS4KKyAgKi8KICBzdGF0aWMgcHRpZF90IHBy ZXZpb3VzX2luZmVyaW9yX3B0aWQ7CiAgCiAgLyogRGVmYXVsdCBiZWhhdmlv ciBpcyB0byBkZXRhY2ggbmV3bHkgZm9ya2VkIHByb2Nlc3NlcyAobGVnYWN5 KS4gICovCioqKioqKioqKioqKioqKiBwcm9jZWVkIChDT1JFX0FERFIgYWRk ciwgZW51bSB0YXJnZXRfc2lnCioqKiAyMDY5LDIwNzUgKioqKgogICAgICB9 CiAgCiAgICAvKiBXZSdsbCB1cGRhdGUgdGhpcyBpZiAmIHdoZW4gd2Ugc3dp dGNoIHRvIGEgbmV3IHRocmVhZC4gICovCiEgICBwcmV2aW91c19pbmZlcmlv cl9wdGlkID0gaW5mZXJpb3JfcHRpZDsKICAKICAgIHJlZ2NhY2hlID0gZ2V0 X2N1cnJlbnRfcmVnY2FjaGUgKCk7CiAgICBnZGJhcmNoID0gZ2V0X3JlZ2Nh Y2hlX2FyY2ggKHJlZ2NhY2hlKTsKLS0tIDIwNzUsMjA4MSAtLS0tCiAgICAg IH0KICAKICAgIC8qIFdlJ2xsIHVwZGF0ZSB0aGlzIGlmICYgd2hlbiB3ZSBz d2l0Y2ggdG8gYSBuZXcgdGhyZWFkLiAgKi8KISAgIGN1cnJlbnRfaW5mZXJp b3JfcHRpZCA9IGluZmVyaW9yX3B0aWQ7CiAgCiAgICByZWdjYWNoZSA9IGdl dF9jdXJyZW50X3JlZ2NhY2hlICgpOwogICAgZ2RiYXJjaCA9IGdldF9yZWdj YWNoZV9hcmNoIChyZWdjYWNoZSk7CioqKioqKioqKioqKioqKiBpbml0X3dh aXRfZm9yX2luZmVyaW9yICh2b2lkKQoqKiogMjI4OSwyMjk1ICoqKioKICAK ICAgIHRhcmdldF9sYXN0X3dhaXRfcHRpZCA9IG1pbnVzX29uZV9wdGlkOwog IAohICAgcHJldmlvdXNfaW5mZXJpb3JfcHRpZCA9IGluZmVyaW9yX3B0aWQ7 CiAgICBpbml0X2luZndhaXRfc3RhdGUgKCk7CiAgCiAgICAvKiBEaXNjYXJk IGFueSBza2lwcGVkIGlubGluZWQgZnJhbWVzLiAgKi8KLS0tIDIyOTUsMjMw MSAtLS0tCiAgCiAgICB0YXJnZXRfbGFzdF93YWl0X3B0aWQgPSBtaW51c19v bmVfcHRpZDsKICAKISAgIGN1cnJlbnRfaW5mZXJpb3JfcHRpZCA9IGluZmVy aW9yX3B0aWQ7CiAgICBpbml0X2luZndhaXRfc3RhdGUgKCk7CiAgCiAgICAv KiBEaXNjYXJkIGFueSBza2lwcGVkIGlubGluZWQgZnJhbWVzLiAgKi8KKioq KioqKioqKioqKioqIGhhbmRsZV9pbmZlcmlvcl9ldmVudCAoc3RydWN0IGV4 ZWN1dGlvbl8KKioqIDM3MTksMzcyNSAqKioqCiAgCSAgc3dpdGNoX3RvX3Ro cmVhZCAoZGVmZXJyZWRfc3RlcF9wdGlkKTsKICAJICBkZWZlcnJlZF9zdGVw X3B0aWQgPSBudWxsX3B0aWQ7CiAgCSAgLyogU3VwcHJlc3Mgc3B1cmlvdXMg IlN3aXRjaGluZyB0byAuLi4iIG1lc3NhZ2UuICAqLwohIAkgIHByZXZpb3Vz X2luZmVyaW9yX3B0aWQgPSBpbmZlcmlvcl9wdGlkOwogIAogIAkgIHJlc3Vt ZSAoMSwgVEFSR0VUX1NJR05BTF8wKTsKICAJICBwcmVwYXJlX3RvX3dhaXQg KGVjcyk7Ci0tLSAzNzI1LDM3MzEgLS0tLQogIAkgIHN3aXRjaF90b190aHJl YWQgKGRlZmVycmVkX3N0ZXBfcHRpZCk7CiAgCSAgZGVmZXJyZWRfc3RlcF9w dGlkID0gbnVsbF9wdGlkOwogIAkgIC8qIFN1cHByZXNzIHNwdXJpb3VzICJT d2l0Y2hpbmcgdG8gLi4uIiBtZXNzYWdlLiAgKi8KISAJICBjdXJyZW50X2lu ZmVyaW9yX3B0aWQgPSBpbmZlcmlvcl9wdGlkOwogIAogIAkgIHJlc3VtZSAo MSwgVEFSR0VUX1NJR05BTF8wKTsKICAJICBwcmVwYXJlX3RvX3dhaXQgKGVj cyk7CioqKioqKioqKioqKioqKiBwcmludF9ub19oaXN0b3J5X3JlYXNvbiAo dm9pZCkKKioqIDU3MzAsNTczNSAqKioqCi0tLSA1NzM2LDU3NTMgLS0tLQog ICAgdWlfb3V0X3RleHQgKGN1cnJlbnRfdWlvdXQsICJcbk5vIG1vcmUgcmV2 ZXJzZS1leGVjdXRpb24gaGlzdG9yeS5cbiIpOwogIH0KICAKKyAvKiBSZXR1 cm4gdGhlIHByZXZpb3VzIHRocmVhZCdzIGlkLiAgUmV0dXJuIGEgdmFsdWUg b2YgMCBpZgorICAgIG5vIHByZXZpb3VzIHRocmVhZCB3YXMgc2VsZWN0ZWQs IG9yIGl0IGRvZXNuJ3QgZXhpc3QuICAqLworIAorIHN0cnVjdCB2YWx1ZSAq CisgcHJldl90aHJlYWRfaWRfbWFrZV92YWx1ZSAoc3RydWN0IGdkYmFyY2gg KmdkYmFyY2gsIHN0cnVjdCBpbnRlcm5hbHZhciAqdmFyKQorIHsKKyAgIHN0 cnVjdCB0aHJlYWRfaW5mbyAqdHAgPSBmaW5kX3RocmVhZF9wdGlkIChwcmV2 aW91c19pbmZlcmlvcl9wdGlkKTsKKyAKKyAgIHJldHVybiB2YWx1ZV9mcm9t X2xvbmdlc3QgKGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0aW5faW50 LAorICAgICAgICAgICAgICAgICAgKHRwID8gdHAtPm51bSA6IDApKTsKKyB9 CisgCiAgLyogSGVyZSB0byByZXR1cm4gY29udHJvbCB0byBHREIgd2hlbiB0 aGUgaW5mZXJpb3Igc3RvcHMgZm9yIHJlYWwuCiAgICAgUHJpbnQgYXBwcm9w cmlhdGUgbWVzc2FnZXMsIHJlbW92ZSBicmVha3BvaW50cywgZ2l2ZSB0ZXJt aW5hbCBvdXIgbW9kZXMuCiAgCioqKioqKioqKioqKioqKiBub3JtYWxfc3Rv cCAodm9pZCkKKioqIDU3NzAsNTc4NSAqKioqCiAgICAgICBOb3RlIHRoYXQg U0lHTkFMTEVEIGhlcmUgbWVhbnMgImV4aXRlZCB3aXRoIGEgc2lnbmFsIiwg bm90CiAgICAgICAicmVjZWl2ZWQgYSBzaWduYWwiLiAgKi8KICAgIGlmICgh bm9uX3N0b3AKISAgICAgICAmJiAhcHRpZF9lcXVhbCAocHJldmlvdXNfaW5m ZXJpb3JfcHRpZCwgaW5mZXJpb3JfcHRpZCkKICAgICAgICAmJiB0YXJnZXRf aGFzX2V4ZWN1dGlvbgogICAgICAgICYmIGxhc3Qua2luZCAhPSBUQVJHRVRf V0FJVEtJTkRfU0lHTkFMTEVECiAgICAgICAgJiYgbGFzdC5raW5kICE9IFRB UkdFVF9XQUlUS0lORF9FWElURUQpCiAgICAgIHsKICAgICAgICB0YXJnZXRf dGVybWluYWxfb3Vyc19mb3Jfb3V0cHV0ICgpOwogICAgICAgIHByaW50Zl9m aWx0ZXJlZCAoXygiW1N3aXRjaGluZyB0byAlc11cbiIpLAohIAkJICAgICAg IHRhcmdldF9waWRfdG9fc3RyIChpbmZlcmlvcl9wdGlkKSk7CiAgICAgICAg YW5ub3RhdGVfdGhyZWFkX2NoYW5nZWQgKCk7CiEgICAgICAgcHJldmlvdXNf aW5mZXJpb3JfcHRpZCA9IGluZmVyaW9yX3B0aWQ7CiAgICAgIH0KICAKICAg IGlmICghYnJlYWtwb2ludHNfYWx3YXlzX2luc2VydGVkX21vZGUgKCkgJiYg dGFyZ2V0X2hhc19leGVjdXRpb24pCi0tLSA1Nzg4LDU4MDQgLS0tLQogICAg ICAgTm90ZSB0aGF0IFNJR05BTExFRCBoZXJlIG1lYW5zICJleGl0ZWQgd2l0 aCBhIHNpZ25hbCIsIG5vdAogICAgICAgInJlY2VpdmVkIGEgc2lnbmFsIi4g ICovCiAgICBpZiAoIW5vbl9zdG9wCiEgICAgICAgJiYgIXB0aWRfZXF1YWwg KGN1cnJlbnRfaW5mZXJpb3JfcHRpZCwgaW5mZXJpb3JfcHRpZCkKICAgICAg ICAmJiB0YXJnZXRfaGFzX2V4ZWN1dGlvbgogICAgICAgICYmIGxhc3Qua2lu ZCAhPSBUQVJHRVRfV0FJVEtJTkRfU0lHTkFMTEVECiAgICAgICAgJiYgbGFz dC5raW5kICE9IFRBUkdFVF9XQUlUS0lORF9FWElURUQpCiAgICAgIHsKICAg ICAgICB0YXJnZXRfdGVybWluYWxfb3Vyc19mb3Jfb3V0cHV0ICgpOwogICAg ICAgIHByaW50Zl9maWx0ZXJlZCAoXygiW1N3aXRjaGluZyB0byAlc11cbiIp LAohICAgICAgICAgICAgICAgIHRhcmdldF9waWRfdG9fc3RyIChpbmZlcmlv cl9wdGlkKSk7CiAgICAgICAgYW5ub3RhdGVfdGhyZWFkX2NoYW5nZWQgKCk7 CiEgICAgICAgcHJldmlvdXNfaW5mZXJpb3JfcHRpZCA9IGN1cnJlbnRfaW5m ZXJpb3JfcHRpZDsKISAgICAgICBjdXJyZW50X2luZmVyaW9yX3B0aWQgPSBp bmZlcmlvcl9wdGlkOwogICAgICB9CiAgCiAgICBpZiAoIWJyZWFrcG9pbnRz X2Fsd2F5c19pbnNlcnRlZF9tb2RlICgpICYmIHRhcmdldF9oYXNfZXhlY3V0 aW9uKQpJbmRleDogdGhyZWFkLmMKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS Q1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi90aHJlYWQuYyx2CnJldHJpZXZp bmcgcmV2aXNpb24gMS4xNDIKZGlmZiAtYyAtcCAtcjEuMTQyIHRocmVhZC5j CioqKiB0aHJlYWQuYwk0IEF1ZyAyMDExIDE5OjEwOjEzIC0wMDAwCTEuMTQy Ci0tLSB0aHJlYWQuYwk4IEF1ZyAyMDExIDExOjI0OjAyIC0wMDAwCioqKioq KioqKioqKioqKiBTaG93IHByaW50aW5nIG9mIHRocmVhZCBldmVudHMgKHN1 Y2ggYXMgCioqKiAxNDk4LDE1MDEgKioqKgotLS0gMTQ5OCwxNTAyIC0tLS0K ICAgICAgICAgICAmc2V0cHJpbnRsaXN0LCAmc2hvd3ByaW50bGlzdCk7CiAg CiAgICBjcmVhdGVfaW50ZXJuYWx2YXJfdHlwZV9sYXp5ICgiX3RocmVhZCIs IHRocmVhZF9pZF9tYWtlX3ZhbHVlKTsKKyAgIGNyZWF0ZV9pbnRlcm5hbHZh cl90eXBlX2xhenkgKCJfcHJldl90aHJlYWQiLCBwcmV2X3RocmVhZF9pZF9t YWtlX3ZhbHVlKTsKICB9Cg== --0-953148641-1312803282=:12167--