Bug 32544
Summary: | gdb Can't fetch instructions for slot numbers greater than 2. | ||
---|---|---|---|
Product: | [Retired] Red Hat Linux | Reporter: | John Reiser <jreiser> |
Component: | gdb | Assignee: | Trond Eivind Glomsrxd <teg> |
Status: | CLOSED RAWHIDE | QA Contact: | Aaron Brown <abrown> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | 7.3 | CC: | paul, teg |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | ia64 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2001-04-10 00:22:34 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Bill: IA64-specific Assigning to gdb package maintainer. :P Fixed in gdb CVS, haven't built new RPMs yet. OK, built gdb-5.0rh-6 with this fix. Available from Rawhide someday, now (for a limited time) from http://people.redhat.com/teg/gdb/ John no longer has access to the IA-64 machine. Using "GNU gdb 5.0rh-6 Red Hat Linux 7.1" from http://people.redhat.com/teg/gdb/gdb-5.0rh-6 I still get the exact same result John described. Reopening. Try gdb-5.0rh-9 from the above address - with it, I can't reproduce the problem. gdb-5.0rh-9 appears to have fixed the problem for me as well |
From Bugzilla Helper: User-Agent: Mozilla/4.75 [en] (X11; U; Linux 2.2.5-15 i586) Multiple 'stepi' followed by multiple 'next' leads to the complaint "Can't fetch instructions for slot numbers greater than 2." and then gdb can be lost (further 'n' causes gdb crash via SIGSEGV, etc.) Reproducible: Always Steps to Reproduce: 1. compile test program: cc -g foo.c 2. invoke in background: ./a.out & 3. attach with gdb, set register value to escape from inifinite loop, stepi (several times) out of infinite loop, 'next' several times. c>cat foo.c int go(int j) { return j; } int a,b,c; main() { while (0==go(0)) { ; /* do nothing */ } printf("Now is the time %d %d %d\n", a, b, c); return a+b; } c> Actual Results: c>cc -g foo.c c>./a.out & [1] 28656 c>/usr/bin/gdb ./a.out 28656 GNU gdb 5.0 Copyright 2000 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "ia64-redhat-linux"... /home/angus/jreiser/dv/insight/examples/c/28656: No such file or directory. Attaching to program: /home/angus/jreiser/dv/insight/examples/c/./a.out, Pid 28656 Reading symbols from /lib/libc.so.6.1...done. Loaded symbols for /lib/libc.so.6.1 Reading symbols from /lib/ld-linux-ia64.so.2...done. Loaded symbols for /lib/ld-linux-ia64.so.2 0x4000000000000681 in go (j=0) at foo.c:3 3 return j; (gdb) x/i $pc 0x4000000000000681 <go+17>: mov r8=r14 (gdb) def g Type commands for definition of "g". End with a line saying just "end". >stepi >x/i $pc >end (gdb) set $r14 = 1 (gdb) g 4 } 0x4000000000000682 <go+18>: mov r12=r2 (gdb) 0x4000000000000690 4 } 0x4000000000000690 <go+32>: [MIB] nop.m 0x0 (gdb) p/x $r8 $1 = 0x1 (gdb) g 0x4000000000000691 4 } 0x4000000000000691 <go+33>: nop.i 0x0 (gdb) 0x4000000000000692 4 } 0x4000000000000692 <go+34>: br.ret.sptk.many b0;; (gdb) 0x40000000000006e0 in main () at foo.c:10 10 while (0==go(0)) { 0x40000000000006e0 <main+64>: [MII] mov r1=r32 (gdb) n 13 printf("Now is the time %d %d %d\n", a, b, c); gdb) Now is the time 0 0 0 14 return a+b; (gdb) 15 } (gdb) 0x2000000000086d20 in __libc_start_main (main=0x4000000000000a48 <_fini+392>, argc=1, ubp_av=0x80000ffffffff0a8, init=0x4000000000000a28 <_fini+360>, fini=0x200000000003d500 <_dl_debug_impcalls>, rtld_fini=0x2000000000250190 <translit_from_idx+304>, stack_end=0x80000ffffffff0a0) at ../sysdeps/generic/libc-start.c:129 129 ../sysdeps/generic/libc-start.c: No such file or directory. in ../sysdeps/generic/libc-start.c (gdb) Can't fetch instructions for slot numbers greater than 2. (gdb) Expected Results: No complaint "Can't fetch instructions for slot numbers greater than 2." c>rpm -q -f /usr/bin/gdb gdb-5.0-13 c>ls -l /usr/bin/gdb -rwxr-xr-x 1 root root 4149304 Jan 22 05:47 /usr/bin/gdb c>cat /etc/redhat-release Red Hat Linux release 7.0.90 (Fisher)