Created attachment 411878 [details] sra-1.c On the attached testcase: (gdb) b 20 (gdb) b 31 (gdb) b 42 (gdb) r (gdb) p a $1 = {i = 4, j = 14} (gdb) p a.i $2 = 4 (gdb) p a.j $3 = 4 (gdb) c $3 is wrong, should have been 14. The debug info looks correct and, after all, p a printed it correctly too. (gdb) p a $4 = {4, 14} (gdb) p a[0] Can't take address of "a" which isn't an lvalue. (gdb) p a[1] Can't take address of "a" which isn't an lvalue. (gdb) c When p a is able to print it, so should IMHO p a[0] or p a[1]. (gdb) p a Unhandled dwarf expression opcode 0x9d (gdb) p a.i Unhandled dwarf expression opcode 0x9d (gdb) p a.j Unhandled dwarf expression opcode 0x9d And here DW_OP_bit_piece is unsupported.
This is with http://gcc.gnu.org/PR43983 #c5 patch.
Created attachment 411881 [details] sra-1.s gcc -g -O2 -dA generated x86-64 assembly.
Created attachment 411883 [details] sra-1.s gcc -g -O2 -dA generated x86-64 assembly.
I've checked in 4 patches to upstream gdb that should fix these problems. The unavailable piece patch is not really complete (it warns and fills in zeroes), but it is better than not getting any results at all.
gdb-bz589467-pieces1of4.patch = http://sourceware.org/ml/gdb-cvs/2010-05/msg00186.html gdb-bz589467-pieces2of4.patch = http://sourceware.org/ml/gdb-cvs/2010-05/msg00188.html = http://sourceware.org/ml/gdb-cvs/2010-05/msg00189.html gdb-bz589467-pieces3of4.patch = http://sourceware.org/ml/gdb-cvs/2010-05/msg00190.html gdb-bz589467-pieces4of4.patch = http://sourceware.org/ml/gdb-cvs/2010-05/msg00191.html
gdb-7.1-23.fc13 has been submitted as an update for Fedora 13. http://admin.fedoraproject.org/updates/gdb-7.1-23.fc13
gdb-7.1-23.fc13 has been pushed to the Fedora 13 stable repository. If problems still persist, please make note of it in this bug report.