Trying to check gdb's behavior in a previous release, I did: $ ~/gdb/7_0/build/gdb/gdb -nx ./gdb/gdb GNU gdb (GDB) 7.0.1.20091231-cvs Copyright (C) 2009 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 "x86_64-unknown-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /home/pedro/gdb/mygit/build/gdb/gdb...Dwarf Error: wrong version in compilation unit header (is 4, should be 2) [in module /home/pedro/gdb/mygit/build/gdb/gdb] (gdb) The old GDB didn't understand dwarf 4, so it bailed out, but it also didn't load the minsyms, while it could. I think it should: (gdb) b main No symbol table is loaded. Use the "file" command. Make breakpoint pending on future shared library load? (y or [n]) $ nm -A ./gdb/gdb | grep "T main$" ./gdb/gdb:0000000000457b4c T main I haven't tried current mainline's behavior.
Testing a patch.
CVSROOT: /cvs/src Module name: src Changes by: tromey@sourceware.org 2013-01-14 20:51:48 Modified files: gdb : ChangeLog dwarf2read.c psympriv.h psymtab.c gdb/testsuite : ChangeLog Added files: gdb/testsuite/gdb.dwarf2: dw2-error.S dw2-error.c dw2-error.exp Log message: PR symtab/14931: * psymtab.c (struct psymtab_state): New. (discard_psymtabs_upto, make_cleanup_discard_psymtabs): New functions. * psympriv.h (make_cleanup_discard_psymtabs): Declare. * dwarf2read.c (dwarf2_build_psymtabs): Catch exceptions. gdb/testsuite * gdb.dwarf2/dw2-error.exp: New file. * gdb.dwarf2/dw2-error.c: New file. * gdb.dwarf2/dw2-error.S: New file. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/ChangeLog.diff?cvsroot=src&r1=1.15014&r2=1.15015 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/dwarf2read.c.diff?cvsroot=src&r1=1.728&r2=1.729 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/psympriv.h.diff?cvsroot=src&r1=1.17&r2=1.18 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/psymtab.c.diff?cvsroot=src&r1=1.60&r2=1.61 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/ChangeLog.diff?cvsroot=src&r1=1.3504&r2=1.3505 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.dwarf2/dw2-error.S.diff?cvsroot=src&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.dwarf2/dw2-error.c.diff?cvsroot=src&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.dwarf2/dw2-error.exp.diff?cvsroot=src&r1=NONE&r2=1.1
Fixed.