Date: Tue, 01 Nov 2011 17:18:00 -0600 From: Lee Thomas <lthomas_lists@lthomas.net> To: FreeBSD Hackers <freebsd-hackers@freebsd.org> Subject: Patch for PR ports/157342: devel/gdb (Invalid selected thread) Message-ID: <e31576421723bbaed849e37d75d4f2e9@lthomas.net>
next in thread | raw e-mail | index | archive | help
--=_3887e89940a1d83ef9282fe1a618aaa0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=UTF-8; format=flowed Hello, everyone. I believe the following (and attached) patch to devel/gdb fixes PR ports/157342: "devel/gdb: Problem with running simple pthreads program under gdb-7.2 (Invalid selected thread)" It works for me for the gdb from ports (7.3.1) on FreeBSD 9.0-RC1 amd64, but I don't have any other machines to test it on. Could someone please A) review this patch, B) test it, and/or C) tell me who to send it to / what the correct procedure is for getting it reviewed and/or applied? Thank you for your help. Regards, Lee Thomas --- /freebsd_ports/devel/gdb/files/fbsd-threads.c 2011-10-29 13:04:09.000000000 -0400 +++ /gdb_threads_fix/devel/gdb/files/fbsd-threads.c 2011-10-29 16:53:16.000000000 -0400 @@ -733,11 +733,15 @@ if (ourstatus->value.sig == TARGET_SIGNAL_TRAP) check_event(ret); /* this is a hack, if an event won't cause gdb to stop, for example, - SIGARLM, gdb resumes the process immediatly without setting + SIGALRM, gdb resumes the process immediatly without setting inferior_ptid to the new thread returned here, this is a bug because inferior_ptid may already not exist there, and passing - a none existing thread to fbsd_thread_resume causes error. */ - if (!fbsd_thread_alive (ops, inferior_ptid)) + a non-existing thread to fbsd_thread_resume causes error. However, + if the exiting thread is the currently selected thread, + then that is handled later in handle_inferior_event(), and we must + not delete the currently selected thread. + */ + if (!fbsd_thread_alive (ops, inferior_ptid) && !ptid_equal(inferior_ptid, ret)) { delete_thread (inferior_ptid); inferior_ptid = ret; --=_3887e89940a1d83ef9282fe1a618aaa0 Content-Transfer-Encoding: base64 Content-Type: application/octet-stream; name=gdb_fix.diff Content-Disposition: attachment; filename=gdb_fix.diff LS0tIC9mcmVlYnNkX3BvcnRzL2RldmVsL2dkYi9maWxlcy9mYnNkLXRocmVhZHMuYwkyMDExLTEw LTI5IDEzOjA0OjA5LjAwMDAwMDAwMCAtMDQwMAorKysgL2dkYl90aHJlYWRzX2ZpeC9kZXZlbC9n ZGIvZmlsZXMvZmJzZC10aHJlYWRzLmMJMjAxMS0xMC0yOSAxNjo1MzoxNi4wMDAwMDAwMDAgLTA0 MDAKQEAgLTczMywxMSArNzMzLDE1IEBACiAgICAgICBpZiAob3Vyc3RhdHVzLT52YWx1ZS5zaWcg PT0gVEFSR0VUX1NJR05BTF9UUkFQKQogICAgICAgICBjaGVja19ldmVudChyZXQpOwogICAgICAg LyogdGhpcyBpcyBhIGhhY2ssIGlmIGFuIGV2ZW50IHdvbid0IGNhdXNlIGdkYiB0byBzdG9wLCBm b3IgZXhhbXBsZSwKLSAgICAgICAgIFNJR0FSTE0sIGdkYiByZXN1bWVzIHRoZSBwcm9jZXNzIGlt bWVkaWF0bHkgd2l0aG91dCBzZXR0aW5nCisgICAgICAgICBTSUdBTFJNLCBnZGIgcmVzdW1lcyB0 aGUgcHJvY2VzcyBpbW1lZGlhdGx5IHdpdGhvdXQgc2V0dGluZwogICAgICAgICAgaW5mZXJpb3Jf cHRpZCB0byB0aGUgbmV3IHRocmVhZCByZXR1cm5lZCBoZXJlLCB0aGlzIGlzIGEgYnVnCiAgICAg ICAgICBiZWNhdXNlIGluZmVyaW9yX3B0aWQgbWF5IGFscmVhZHkgbm90IGV4aXN0IHRoZXJlLCBh bmQgcGFzc2luZwotICAgICAgICAgYSBub25lIGV4aXN0aW5nIHRocmVhZCB0byBmYnNkX3RocmVh ZF9yZXN1bWUgY2F1c2VzIGVycm9yLiAqLwotICAgICAgaWYgKCFmYnNkX3RocmVhZF9hbGl2ZSAo b3BzLCBpbmZlcmlvcl9wdGlkKSkKKyAgICAgICAgIGEgbm9uLWV4aXN0aW5nIHRocmVhZCB0byBm YnNkX3RocmVhZF9yZXN1bWUgY2F1c2VzIGVycm9yLiBIb3dldmVyLAorICAgICAgICAgaWYgdGhl IGV4aXRpbmcgdGhyZWFkIGlzIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgdGhyZWFkLAorICAgICAg ICAgdGhlbiB0aGF0IGlzIGhhbmRsZWQgbGF0ZXIgaW4gaGFuZGxlX2luZmVyaW9yX2V2ZW50KCks IGFuZCB3ZSBtdXN0CisgICAgICAgICBub3QgZGVsZXRlIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQg dGhyZWFkLiAKKyAgICAgICovCisgICAgICBpZiAoIWZic2RfdGhyZWFkX2FsaXZlIChvcHMsIGlu ZmVyaW9yX3B0aWQpICYmICFwdGlkX2VxdWFsKGluZmVyaW9yX3B0aWQsIHJldCkpCiAgICAgICAg IHsKICAgICAgICAgICBkZWxldGVfdGhyZWFkIChpbmZlcmlvcl9wdGlkKTsKICAgICAgICAgICBp bmZlcmlvcl9wdGlkID0gcmV0Owo= --=_3887e89940a1d83ef9282fe1a618aaa0--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?e31576421723bbaed849e37d75d4f2e9>