From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14828 invoked by alias); 13 May 2008 01:39:16 -0000 Received: (qmail 14809 invoked by uid 22791); 13 May 2008 01:39:15 -0000 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.31) with ESMTP; Tue, 13 May 2008 01:38:47 +0000 Received: from zps76.corp.google.com (zps76.corp.google.com [172.25.146.76]) by smtp-out.google.com with ESMTP id m4D1cekS023050 for ; Tue, 13 May 2008 02:38:41 +0100 Received: from yw-out-2324.google.com (ywj3.prod.google.com [10.192.10.3]) by zps76.corp.google.com with ESMTP id m4D1cdZg020836 for ; Mon, 12 May 2008 18:38:40 -0700 Received: by yw-out-2324.google.com with SMTP id 3so1524591ywj.73 for ; Mon, 12 May 2008 18:38:39 -0700 (PDT) Received: by 10.150.83.29 with SMTP id g29mr9013686ybb.142.1210642719797; Mon, 12 May 2008 18:38:39 -0700 (PDT) Received: by 10.151.99.13 with HTTP; Mon, 12 May 2008 18:38:39 -0700 (PDT) Message-ID: <8ac60eac0805121838k3cd2449aw7971243e134ca3d1@mail.gmail.com> Date: Tue, 13 May 2008 18:07:00 -0000 From: "Paul Pluzhnikov" To: gdb-patches@sourceware.org Subject: [RFC] Fix for gdb crash in "info thread" after exec(). Cc: "Doug Evans" MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_3149_200915.1210642719747" 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: 2008-05/txt/msg00392.txt.bz2 ------=_Part_3149_200915.1210642719747 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Content-length: 1691 Greetings, Gdb (CVS Head) crashes when 'info thread' is executed after program exec()s: $ cat execl.c #include int main (int argc, char* argv[]) { if (argc == 1) execl (argv[0], argv[0], "second", NULL); return 0; } $ gcc -g execl.c -pthread && ./gdb -nx -q a.out (gdb) b main Breakpoint 1 at 0x8048388: file execl.c, line 5. (gdb) r Starting program: /usr/local/build/gdb/a.out [Thread debugging using libthread_db enabled] Breakpoint 1, main (argc=1, argv=0xffffd744) at execl.c:5 5 if (argc == 1) (gdb) c Continuing. warning: Error removing breakpoint -2 warning: Error removing breakpoint -3 [New process 5418] Executing new program: /usr/local/build/gdb/a.out warning: Cannot initialize thread debugging library: generic error [Thread debugging using libthread_db enabled] Breakpoint 1, main (argc=2, argv=0xffffd744) at execl.c:5 5 if (argc == 1) (gdb) inf thread ../../src/gdb/linux-nat.c:2960: internal-error: linux_nat_thread_alive: Assertion `is_lwp (ptid)' failed. A problem internal to GDB has been detected, further debugging may prove unreliable. Quit this debugging session? (y or n) y The problem is that gdb maintains thread list which is not properly re-initialized after exec(). Attached patch (originally by Doug Evans ) fixes that, and adds a test case for it. Thanks, -- Paul Pluzhnikov ChangeLog: 2008-05-12 Paul Pluzhnikov * gdb/linux-thread-dl.c (check_for_thread_db): reinitialize thread list after exec(). testsuite/ChangeLog: 2008-05-12 Paul Pluzhnikov * gdb.threads/execl.c, gdb.threads/execl.exp: Add test for "info threads" after exec. ------=_Part_3149_200915.1210642719747 Content-Type: text/plain; name=gdb-20080512-patch.txt Content-Transfer-Encoding: base64 X-Attachment-Id: f_fg5te1et0 Content-Disposition: attachment; filename=gdb-20080512-patch.txt Content-length: 4600 Q2hhbmdlTG9nOgoyMDA4LTA1LTEyICBQYXVsIFBsdXpobmlrb3YgIDxwcGx1 emhuaWtvdkBnb29nbGUuY29tPgoKCSogZ2RiL2xpbnV4LXRocmVhZC1kbC5j IChjaGVja19mb3JfdGhyZWFkX2RiKTogcmVpbml0aWFsaXplCgl0aHJlYWQg bGlzdCBhZnRlciBleGVjKCkuCgp0ZXN0c3VpdGUvQ2hhbmdlTG9nOgoyMDA4 LTA1LTEyICBQYXVsIFBsdXpobmlrb3YgIDxwcGx1emhuaWtvdkBnb29nbGUu Y29tPgoKCSogZ2RiLnRocmVhZHMvZXhlY2wuYywgZ2RiLnRocmVhZHMvZXhl Y2wuZXhwOiBBZGQgdGVzdCBmb3IKCSJpbmZvIHRocmVhZHMiIGFmdGVyIGV4 ZWMuCgoKSW5kZXg6IGdkYi9saW51eC10aHJlYWQtZGIuYwo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL2xpbnV4 LXRocmVhZC1kYi5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQyCmRpZmYg LXUgLXAgLXUgLXIxLjQyIGxpbnV4LXRocmVhZC1kYi5jCi0tLSBnZGIvbGlu dXgtdGhyZWFkLWRiLmMJNCBNYXkgMjAwOCAxNDoxMjozNCAtMDAwMAkxLjQy CisrKyBnZGIvbGludXgtdGhyZWFkLWRiLmMJMTMgTWF5IDIwMDggMDE6Mjg6 NDggLTAwMDAKQEAgLTYxMyw2ICs2MTMsMTAgQEAgY2hlY2tfZm9yX3RocmVh ZF9kYiAodm9pZCkKICAgICAgIHB1c2hfdGFyZ2V0ICgmdGhyZWFkX2RiX29w cyk7CiAgICAgICB1c2luZ190aHJlYWRfZGIgPSAxOwogCisgICAgICAvKiBF eGlzdGluZyBlbnRyaWVzIGluIHRocmVhZF9saXN0IG1pZ2h0IG5vdCBoYXZl IHRocmVhZF9pbmZvLnByaXZhdGUKKwkgc2V0LCBzbyBjbGVhciBpdCBvdXQu ICAqLworICAgICAgaW5pdF90aHJlYWRfbGlzdCAoKTsKKwogICAgICAgZW5h YmxlX3RocmVhZF9ldmVudF9yZXBvcnRpbmcgKCk7CiAgICAgICB0aHJlYWRf ZGJfZmluZF9uZXdfdGhyZWFkcyAoKTsKICAgICAgIGJyZWFrOwpJbmRleDog Z2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9leGVjbC5jCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KUkNTIGZpbGU6IGdkYi90ZXN0c3VpdGUvZ2RiLnRocmVh ZHMvZXhlY2wuYwpkaWZmIC1OIGdkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMv ZXhlY2wuYwotLS0gL2Rldi9udWxsCTEgSmFuIDE5NzAgMDA6MDA6MDAgLTAw MDAKKysrIGdkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvZXhlY2wuYwkxMyBN YXkgMjAwOCAwMToyODo0OCAtMDAwMApAQCAtMCwwICsxLDEyIEBACisvKiBU ZXN0IGhhbmRsaW5nIHRocmVhZCBjb250cm9sIGFjcm9zcyBhbiBleGVjbC4g ICovCisKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworaW50CittYWluIChpbnQg YXJnYywgY2hhciogYXJndltdKQoreworICBpZiAoYXJnYyA9PSAxKQorICAg IGV4ZWNsIChhcmd2WzBdLCBhcmd2WzBdLCAic2Vjb25kIiwgTlVMTCk7CisK KyAgcmV0dXJuIDA7Cit9CkluZGV4OiBnZGIvdGVzdHN1aXRlL2dkYi50aHJl YWRzL2V4ZWNsLmV4cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl OiBnZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL2V4ZWNsLmV4cApkaWZmIC1O IGdkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvZXhlY2wuZXhwCi0tLSAvZGV2 L251bGwJMSBKYW4gMTk3MCAwMDowMDowMCAtMDAwMAorKysgZ2RiL3Rlc3Rz dWl0ZS9nZGIudGhyZWFkcy9leGVjbC5leHAJMTMgTWF5IDIwMDggMDE6Mjg6 NDggLTAwMDAKQEAgLTAsMCArMSw0OCBAQAorIyBDb3B5cmlnaHQgKEMpIDIw MDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyMgVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkK KyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisj IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMK KyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHBy b2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uCisKKyMgUGxlYXNlIGVtYWlsIGFueSBidWdzLCBjb21tZW50cywg YW5kL29yIGFkZGl0aW9ucyB0byB0aGlzIGZpbGUgdG86CisjIGJ1Zy1nZGJA cHJlcC5haS5taXQuZWR1CisKKyMgVGVzdCBoYW5kbGluZyBvZiB0aHJlYWRz IGFjcm9zcyBhbiBleGVjbC4KKworaWYgJHRyYWNlbGV2ZWwgdGhlbiB7Cisg ICAgc3RyYWNlICR0cmFjZWxldmVsCit9CisKK3NldCB0ZXN0ZmlsZSAiZXhl Y2wiCitzZXQgc3JjZmlsZSAke3Rlc3RmaWxlfS5jCitzZXQgYmluZmlsZSAk e29iamRpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9CisKK2lmIHtbZ2RiX2Nv bXBpbGVfcHRocmVhZHMgIiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxl fSIgIiR7YmluZmlsZX0iIGV4ZWN1dGFibGUgW2xpc3QgZGVidWcgImluY2Rp cj0ke29iamRpcn0iXV0gIT0gIiIgfSB7CisgICAgcmV0dXJuIC0xCit9CisK K2dkYl9leGl0CitnZGJfc3RhcnQKK2dkYl9yZWluaXRpYWxpemVfZGlyICRz cmNkaXIvJHN1YmRpcgorZ2RiX2xvYWQgJHtiaW5maWxlfQorCitydW50b19t YWluCisKKyMgV2hlbiBjb250aW51aW5nIGZyb20gdGhpcyBwb2ludCB3ZSds bCBoaXQgdGhlIGJyZWFrcG9pbnQgaW4gbWFpbigpCisjIGFnYWluLCB0aGlz IHRpbWUgaW4gdGhlIGV4ZWMnZCBwcm9jZXNzLgorZ2RiX3Rlc3QgImNvbnRp bnVlIiAiLipCcmVha3BvaW50IDEsIG1haW4uKiIgXAorICAgICJjb250aW51 ZSBhY3Jvc3MgZXhlYyIKKworZ2RiX3Rlc3QgImluZm8gdGhyZWFkcyIgIi4q IiAiaW5mbyB0aHJlYWRzIGFmdGVyIGV4ZWMiCisKK2dkYl90ZXN0ICJjb250 aW51ZSIgIi4qUHJvZ3JhbSBleGl0ZWQgbm9ybWFsbHlcXC4iIFwKKyAgICAi Y29udGludWUgdG8gZW5kIgo= ------=_Part_3149_200915.1210642719747--