Red Hat Bugzilla – Bug 137904
gdb/dwarf2read.c:4969: internal-error: could not find partial DIE in cache
Last modified: 2007-11-30 17:07:04 EST
Description of problem: When starting gdb on some binaries gdb crashes. The binaries are proprietary unstripped 50-200 Mb binaries, compiled with gcc-3.3.4 and binutils-2.13 build-from-scratch. There is no problem executing the binaries. Other similar binaries from same setup can be loaded in gdb without problems; we see no pattern. When stripped the binaries can be loaded in gdb without problems. There is no problem with GNU gdb Red Hat Linux (6.0post-0.20040223.20rh) Version-Release number of selected component (if applicable): gdb-6.1post-1.20040607.17 How reproducible: Every time Steps to Reproduce: 1. gdb foo Actual results: GNU gdb Red Hat Linux (6.1post-1.20040607.17rh) Copyright 2004 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 "i386-redhat-linux-gnu"... /usr/src/build/427038-i386/BUILD/gdb+dejagnu-20040607/gdb/dwarf2read.c:4969: internal-error: could not find partial DIE in cache A problem internal to GDB has been detected, further debugging may prove unreliable. Quit this debugging session? (y or n) /usr/src/build/427038-i386/BUILD/gdb+dejagnu-20040607/gdb/dwarf2read.c:4969: internal-error: could not find partial DIE in cache A problem internal to GDB has been detected, further debugging may prove unreliable. Create a core file of GDB? (y or n) Expected results: GNU gdb Red Hat Linux (6.1post-1.20040607.17rh) Copyright 2004 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 "i386-redhat-linux-gnu"...Using host libthread_db library "/lib/tls/libthread_db.so.1". (gdb) Additional info:
Can anyone reproduce the problem with this program? - Compile with: $ gcc -g -O3 foo.c - Launch GDB $ gdb foo Error message: dwarf2read.c:4973: internal-error: could not find partial DIE in cache int foobar (void) { return sillysilly(1); } int main (void) { return foobar (); } int sillysilly(int x) { return 1; }
I have the same error with gdb-6.3.0.0-1.15 (from fedora-devel) on i386, while looking at a core from thunderbird-1.0.2-1: [avi@firebolt ~]$ gdb /usr/lib/thunderbird-1.0.2/thunderbird-bin ./thunderbird-bin-332.core GNU gdb Red Hat Linux (6.3.0.0-1.15rh) Copyright 2004 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 "i386-redhat-linux-gnu"...Using host libthread_db library "/lib/libthread_db.so.1". Core was generated by `/usr/lib/thunderbird-1.0.2/thunderbird-bin'. Program terminated with signal 11, Segmentation fault. Reading symbols from /usr/lib/thunderbird-1.0.2/libmozjs.so...Reading symbols from /usr/lib/debug/usr/lib/thunderbird-1.0.2/libmozjs.so.debug...done. done. Loaded symbols for /usr/lib/thunderbird-1.0.2/libmozjs.so Reading symbols from /usr/lib/libgtk-x11-2.0.so.0...done. Loaded symbols for /usr/lib/libgtk-x11-2.0.so.0 Reading symbols from /usr/lib/libgdk-x11-2.0.so.0...done. Loaded symbols for /usr/lib/libgdk-x11-2.0.so.0 Reading symbols from /usr/lib/libatk-1.0.so.0...done. Loaded symbols for /usr/lib/libatk-1.0.so.0 Reading symbols from /usr/lib/libgdk_pixbuf-2.0.so.0...done. Loaded symbols for /usr/lib/libgdk_pixbuf-2.0.so.0 Reading symbols from /usr/lib/libpangoxft-1.0.so.0...done. Loaded symbols for /usr/lib/libpangoxft-1.0.so.0 Reading symbols from /usr/lib/libpangox-1.0.so.0...done. Loaded symbols for /usr/lib/libpangox-1.0.so.0 Reading symbols from /usr/lib/libpango-1.0.so.0...done. Loaded symbols for /usr/lib/libpango-1.0.so.0 Reading symbols from /usr/lib/libgobject-2.0.so.0...done. Loaded symbols for /usr/lib/libgobject-2.0.so.0 Reading symbols from /usr/lib/libgmodule-2.0.so.0...done. Loaded symbols for /usr/lib/libgmodule-2.0.so.0 Reading symbols from /lib/libdl.so.2...done. Loaded symbols for /lib/libdl.so.2 Reading symbols from /usr/lib/libglib-2.0.so.0...done. Loaded symbols for /usr/lib/libglib-2.0.so.0 Reading symbols from /usr/lib/thunderbird-1.0.2/libxpcom.so...Reading symbols from /usr/lib/debug/usr/lib/thunderbird-1.0.2/libxpcom.so.debug...done. done. Loaded symbols for /usr/lib/thunderbird-1.0.2/libxpcom.so Reading symbols from /usr/lib/thunderbird-1.0.2/libplds4.so...Reading symbols from /usr/lib/debug/usr/lib/thunderbird-1.0.2/libplds4.so.debug...done. done. Loaded symbols for /usr/lib/thunderbird-1.0.2/libplds4.so Reading symbols from /usr/lib/thunderbird-1.0.2/libplc4.so...Reading symbols from /usr/lib/debug/usr/lib/thunderbird-1.0.2/libplc4.so.debug...done. done. Loaded symbols for /usr/lib/thunderbird-1.0.2/libplc4.so Reading symbols from /usr/lib/thunderbird-1.0.2/libnspr4.so...Reading symbols from /usr/lib/debug/usr/lib/thunderbird-1.0.2/libnspr4.so.debug...done. done. Loaded symbols for /usr/lib/thunderbird-1.0.2/libnspr4.so Reading symbols from /lib/libpthread.so.0...done. Loaded symbols for /lib/libpthread.so.0 Reading symbols from /usr/X11R6/lib/libX11.so.6...done. Loaded symbols for /usr/X11R6/lib/libX11.so.6 Reading symbols from /usr/lib/libpangoft2-1.0.so.0...done. Loaded symbols for /usr/lib/libpangoft2-1.0.so.0 Reading symbols from /lib/libm.so.6...done. Loaded symbols for /lib/libm.so.6 Reading symbols from /usr/lib/libstdc++.so.6...done. Loaded symbols for /usr/lib/libstdc++.so.6 Reading symbols from /lib/libgcc_s.so.1...done. Loaded symbols for /lib/libgcc_s.so.1 Reading symbols from /lib/libc.so.6...done. Loaded symbols for /lib/libc.so.6 Reading symbols from /usr/X11R6/lib/libXrandr.so.2...done. Loaded symbols for /usr/X11R6/lib/libXrandr.so.2 Reading symbols from /usr/X11R6/lib/libXi.so.6...done. Loaded symbols for /usr/X11R6/lib/libXi.so.6 Reading symbols from /usr/X11R6/lib/libXinerama.so.1...done. Loaded symbols for /usr/X11R6/lib/libXinerama.so.1 Reading symbols from /usr/X11R6/lib/libXft.so.2...done. Loaded symbols for /usr/X11R6/lib/libXft.so.2 Reading symbols from /usr/lib/libfreetype.so.6...done. Loaded symbols for /usr/lib/libfreetype.so.6 Reading symbols from /usr/lib/libfontconfig.so.1...done. Loaded symbols for /usr/lib/libfontconfig.so.1 Reading symbols from /usr/X11R6/lib/libXfixes.so.3...done. Loaded symbols for /usr/X11R6/lib/libXfixes.so.3 Reading symbols from /usr/X11R6/lib/libXcursor.so.1...done. Loaded symbols for /usr/X11R6/lib/libXcursor.so.1 Reading symbols from /usr/X11R6/lib/libXrender.so.1...done. Loaded symbols for /usr/X11R6/lib/libXrender.so.1 Reading symbols from /usr/X11R6/lib/libXext.so.6...done. Loaded symbols for /usr/X11R6/lib/libXext.so.6 Reading symbols from /lib/ld-linux.so.2...done. Loaded symbols for /lib/ld-linux.so.2 Reading symbols from /usr/lib/libz.so.1...done. Loaded symbols for /usr/lib/libz.so.1 Reading symbols from /usr/lib/libexpat.so.0...done. Loaded symbols for /usr/lib/libexpat.so.0 Reading symbols from /usr/X11R6/lib/X11/locale/lib/common/xlcUTF8Load.so.2...done. Loaded symbols for /usr/X11R6/lib/X11/locale/lib/common/xlcUTF8Load.so.2 Reading symbols from /usr/lib/gconv/ISO8859-1.so...done. Loaded symbols for /usr/lib/gconv/ISO8859-1.so Reading symbols from /usr/lib/gconv/UTF-16.so...done. Loaded symbols for /usr/lib/gconv/UTF-16.so Reading symbols from /lib/libnss_files.so.2...done. Loaded symbols for /lib/libnss_files.so.2 Reading symbols from /usr/lib/thunderbird-1.0.2/components/libnsappshell.so...Reading symbols from /usr/lib/debug/usr/lib/thunderbird-1.0.2/components/libnsappshell.so.debug...done. done. Loaded symbols for /usr/lib/thunderbird-1.0.2/components/libnsappshell.so Reading symbols from /usr/lib/thunderbird-1.0.2/libgkgfx.so...Reading symbols from /usr/lib/debug/usr/lib/thunderbird-1.0.2/libgkgfx.so.debug...done. done. Loaded symbols for /usr/lib/thunderbird-1.0.2/libgkgfx.so Reading symbols from /usr/lib/thunderbird-1.0.2/libgtkxtbin.so...Reading symbols from /usr/lib/debug/usr/lib/thunderbird-1.0.2/libgtkxtbin.so.debug...done. done. Loaded symbols for /usr/lib/thunderbird-1.0.2/libgtkxtbin.so Reading symbols from /usr/X11R6/lib/libXt.so.6...done. Loaded symbols for /usr/X11R6/lib/libXt.so.6 Reading symbols from /usr/X11R6/lib/libSM.so.6...done. Loaded symbols for /usr/X11R6/lib/libSM.so.6 Reading symbols from /usr/X11R6/lib/libICE.so.6...done. Loaded symbols for /usr/X11R6/lib/libICE.so.6 Reading symbols from /usr/lib/thunderbird-1.0.2/components/libwidget_gtk2.so...Reading symbols from /usr/lib/debug/usr/lib/thunderbird-1.0.2/components/libwidget_gtk2.so.debug...done. done. Loaded symbols for /usr/lib/thunderbird-1.0.2/components/libwidget_gtk2.so Reading symbols from /usr/lib/thunderbird-1.0.2/components/libembedcomponents.so...Reading symbols from /usr/lib/debug/usr/lib/thunderbird-1.0.2/components/libembedcomponents.so.debug...done. done. Loaded symbols for /usr/lib/thunderbird-1.0.2/components/libembedcomponents.so Reading symbols from /usr/lib/thunderbird-1.0.2/components/libxpconnect.so...Reading symbols from /usr/lib/debug/usr/lib/thunderbird-1.0.2/components/libxpconnect.so.debug...../../gdb-6.3/gdb/dwarf2read.c:5446: internal-error: could not find partial DIE in cache A problem internal to GDB has been detected, further debugging may prove unreliable. Quit this debugging session? (y or n)
A recent FSF patch regarding this problem has been applied to gdb 6.3.0.0-1.19. Please try this out and verify if it fixes your scenario.
I can confirm that the reported problem disappears after building and installing gdb-6.3.0.0-1.57.src.rpm The problem remains however with the latest official RHEL3 packages: GNU gdb Red Hat Linux (6.3.0.0-0.30.1rh) Copyright 2004 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 "i386-redhat-linux-gnu"... ../../gdb-6.3/gdb/dwarf2read.c:5446: internal-error: could not find partial DIE in cache
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2005-675.html