Here is full session log: ┌─[ xvilka@XLaptop ] [ 4:08:44 ] ~ └>gdb gdb GNU gdb (Gentoo 7.5 p1) 7.5 Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i686-pc-linux-gnu". For bug reporting instructions, please see: <http://bugs.gentoo.org/>... Reading symbols from /usr/bin/gdb...(no debugging symbols found)...done. (gdb) run elinks Starting program: /usr/bin/gdb elinks ./common/linux-ptrace.c:117: internal-error: linux_ptrace_test_ret_to_nx: Assertion `WIFSTOPPED (status)' failed. A problem internal to GDB has been detected, further debugging may prove unreliable. Quit this debugging session? (y or n) n ./common/linux-ptrace.c:117: internal-error: linux_ptrace_test_ret_to_nx: Assertion `WIFSTOPPED (status)' failed. A problem internal to GDB has been detected, further debugging may prove unreliable. Create a core file of GDB? (y or n) N (gdb) n Cannot execute this command while the selected thread is running. (gdb) q A debugging session is active. Inferior 1 [process 4439] will be killed. Quit anyway? (y or n) y Here is uname: Linux XLaptop 3.5.1-hardened #1 PREEMPT Sun Aug 12 16:29:19 MSK 2012 i686 Intel(R) Celeron(R) CPU 743 @ 1.30GHz GenuineIntel GNU/Linux Here is part of dmesg (PaX) error: [2396058.354252] PAX: execution attempt in: <anonymous mapping>, aa1d2000-aa1d5000 aa1d2000 [2396058.354259] PAX: terminating task: /usr/bin/gdb(gdb):15808, uid/euid: 1000/1000, PC: aa1d2000, SP: bb6d5690 [2396058.354262] PAX: bytes at PC: cc 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [2396058.354276] PAX: bytes at SP-4: aa1d2000 00000000 00000000 00000000 00000000 ffffffff 00000000 00000000 176cba91 00004200 00003dbd 00000000 0000003f 00003dbd 00003dbd 00000000 cc6c4300 00003dbd 00003dbd 00000000 186d46f4 [2396058.354319] grsec: denied resource overstep by requesting 4096 for RLIMIT_CORE against limit 0 for /usr/bin/gdb[gdb:15808] uid/euid:1000/1000 gid/egid:1000/1000, parent /usr/bin/gdb[gdb:15802] uid/euid:1000/1000 gid/egid:1000/1000 [2400796.221781] PAX: execution attempt in: <anonymous mapping>, a486b000-a486e000 a486b000 [2400796.221789] PAX: terminating task: /usr/bin/gdb(gdb):4442, uid/euid: 1000/1000, PC: a486b000, SP: b4bb9440 [2400796.221792] PAX: bytes at PC: cc 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [2400796.221807] PAX: bytes at SP-4: a486b000 00000000 00000000 00000000 00000000 ffffffff 00000000 00000000 16505a91 00004200 00001157 00000000 0000003f 00001157 00001157 00000000 4742b000 00001157 00001157 00000000 1750e6f4 [2400796.221846] grsec: denied resource overstep by requesting 4096 for RLIMIT_CORE against limit 0 for /usr/bin/gdb[gdb:4442] uid/euid:1000/1000 gid/egid:1000/1000, parent /usr/bin/gdb[gdb:4437] uid/euid:1000/1000 gid/egid:1000/1000
7.4 version works well, without this bug
When add printf("status=%lx", status); before gdb_assert(WIFSTOPPED(status)); in gdb/common/linux-ptrace.c in function linux_ptrace_test_ret_to_nx() it show "status=9" before /common/linux-ptrace.c:117: internal-error: linux_ptrace_test_ret_to_nx: Assertion `WIFSTOPPED (status)' failed.
Created attachment 6629 [details] Detection of PaX, also on x86_64. Could you check if this patch works? It would be nice to test it also on x86_64. Downloading some gentoo .iso but not sure how it will work for me.
(In reply to comment #3) > Created attachment 6629 [details] > Detection of PaX, also on x86_64. > > Could you check if this patch works? It would be nice to test it also on > x86_64. > Downloading some gentoo .iso but not sure how it will work for me. With applied patch: └>gdb `which elinks` GNU gdb (Gentoo 7.5 p1) 7.5 Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i686-pc-linux-gnu". For bug reporting instructions, please see: <http://bugs.gentoo.org/>... Reading symbols from /usr/bin/elinks...(no debugging symbols found)...done. (gdb) run http://google.com Starting program: /usr/bin/elinks http://google.com ./common/linux-ptrace.c:136: internal-error: linux_ptrace_test_ret_to_nx: Assertion `WIFSIGNALED (status) == SIGKILL' failed. A problem internal to GDB has been detected, further debugging may prove unreliable. Quit this debugging session? (y or n)
Created attachment 6630 [details] Fixed patch.
(In reply to comment #5) > Created attachment 6630 [details] > Fixed patch. Now I have this output: ┌─[ xvilka@XLaptop ] [12:09:19 ] ~/gdb-bug └>gdb `which elinks` GNU gdb (Gentoo 7.5 p1) 7.5 Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i686-pc-linux-gnu". For bug reporting instructions, please see: <http://bugs.gentoo.org/>... Reading symbols from /usr/bin/elinks...(no debugging symbols found)...done. (gdb) run http://google.com Starting program: /usr/bin/elinks http://google.com warning: linux_ptrace_test_ret_to_nx: Cannot PTRACE_KILL: No such process warning: Cannot call inferior functions, Linux kernel PaX protection forbids return to non-executable pages! warning: Could not load shared library symbols for linux-gate.so.1. Do you need "set solib-search-path" or "set sysroot"? [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/libthread_db.so.1". Program received signal SIGSEGV, Segmentation fault. 0xa9249d93 in GC_is_black_listed () from /usr/lib/libgc.so.1 (gdb)
Created attachment 6631 [details] Patch #3.
(In reply to comment #7) > Created attachment 6631 [details] > Patch #3. Yes, it works: ┌─[ xvilka@XLaptop ] [12:09:19 ] ~/gdb-bug └>gdb `which elinks` GNU gdb (Gentoo 7.5 p1) 7.5 Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i686-pc-linux-gnu". For bug reporting instructions, please see: <http://bugs.gentoo.org/>... Reading symbols from /usr/bin/elinks...(no debugging symbols found)...done. (gdb) run http://google.com Starting program: /usr/bin/elinks http://google.com warning: Cannot call inferior functions, Linux kernel PaX protection forbids return to non-executable pages! warning: Could not load shared library symbols for linux-gate.so.1. Do you need "set solib-search-path" or "set sysroot"? [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/libthread_db.so.1". Program received signal SIGSEGV, Segmentation fault. 0x9d11ed93 in GC_is_black_listed () from /usr/lib/libgc.so.1 (gdb)
(In reply to Anton Kochkov from comment #8) > (In reply to comment #7) > > Created attachment 6631 [details] > > Patch #3. > > Yes, it works: A version of this patch was applied here: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=6e3c039e9cd766aae9e300fef549926ef2df2bc9 So can this be closed?
Fixed.