Jan Kratochvil <jan.kratochvil@xxxxxxxxxx> writes: > On Thu, 24 Feb 2011 09:28:10 +0100, Karel Klic wrote: >> Is there something else that should be checked? > > Sometimes references to the source file dirname/filename are broken. > > One fix for all packages: > debugedit: Include empty CU current directories > https://bugzilla.redhat.com/show_bug.cgi?id=444310 > An example fix specifically for the "gdb" package: > http://pkgs.fedoraproject.org/gitweb/?p=gdb.git;a=blob;f=gdb-6.6-bz225783-gdb-debuginfo-paths.patch;hb=8336d588bffd6caa5dcfe9176387d2bde03c31bd > > In some cases it may be found in the build.log > cpio: gdb-7.2/build-x86_64-redhat-linux-gnu/gdb/c-exp.c.tmp: Cannot stat: No such file or directory > cpio: gdb-7.2/build-x86_64-redhat-linux-gnu/gdb/c-exp.y: Cannot stat: No such file or directory > although for /usr/lib/debug/usr/bin/grmid.debug the broken reference to > /tmp/ccZpRdM9.i it is not found in: > http://kojipkgs.fedoraproject.org/packages/gcc/4.6.0/0.10.fc15/data/logs/x86_64/build.log > so the final debuginfo rpm check as you do would be safer anyway. > > While ABRT does not print the line contents from /usr/src/debug still GDB > prints reference to the source filename (+line) which are broken in such case. > > Filename references are in both the .debug_info and .debug_line sections: > > eu-readelf -winfo /usr/lib/debug/usr/bin/gdb.debug > for each compile_unit (DW_TAG_partial_unit is not used in Fedora) > name (strp) "../../gdb/gdb.c" > comp_dir (strp) "/usr/src/debug/gdb-7.2.50.20110218/build-x86_64-redhat-linux-gnu/gdb" > ^^^^^^^^ may not be present for absolute DW_AT_name > > eu-readelf -wline /usr/lib/debug/usr/bin/gdb.debug > for each Table at offset xx: > Directory table: > ../../gdb > ^^^^^^^^^ may be relative to DW_AT_comp_dir of the specific DW_TAG_compile_unit > /usr/include/bits > File name table: > Entry Dir Time Size Name > 1 1 0 0 gdb.c > ^^^^^ may be absolute > 2 2 0 0 string3.h Thank you for the explanation. I have implemented the check. eu-readelf -winfo/-wline output is huge, so it takes several days to make one attampt to check whole rawhide repository. This slows development a bit. I'm attaching some interesting issues discovered by the new check. There are _many_ cases of every kind of error described below. The full list will follow when available. 1. The .debug file is in ELF format, but eu-readelf -winfo/-wline fails: component: 3Depict file: 3Depict-debuginfo-0.0.4-2.fc15.i686/usr/lib/debug/usr/bin/3Depict.debug - eu-readelf: cannot get debug context descriptor: No DWARF information found (return code 1) component: LabPlot file: LabPlot-debuginfo-1.6.0.2-8.fc12.i686/usr/lib/debug/usr/bin/texvc.debug - eu-readelf: cannot get debug context descriptor: No DWARF information found (return code 1) component: ann file: ann-debuginfo-1.1.1-5.fc15.i686/usr/lib/debug/usr/bin/ann2fig.debug - eu-readelf: cannot get debug context descriptor: No DWARF information found (return code 1) 2. It seems that debugging symbols are also generated from asm files, which have broken paths: component: Glide3-libGL file: Glide3-libGL-debuginfo-6.2.1-12.fc15.i686/usr/lib/debug/usr/lib/Glide3-libGL/libGL.so.1.5.060201.debug - relative source directory "x86" in .debug_lines table at offset 343769 without comp_dir in .debug_section compilation unit at offset 5820615 used for file x86_xform2.S - relative source directory "x86" in .debug_lines table at offset 344135 without comp_dir in .debug_section compilation unit at offset 5820719 used for file x86_xform3.S component: aespipe file: aespipe-debuginfo-2.4b-4.fc15.i686/usr/lib/debug/usr/bin/aespipe.debug - comp_dir missing in .debug_section compilation unit at offset 5935, but file md5-x86.S references it in .debug_lines table at offset 3119 - relative source directory "." in .debug_lines table at offset 3119 without comp_dir in .debug_section compilation unit at offset 5935 used for file md5-x86.S component: allegro file: allegro-debuginfo-4.2.3-5.fc15.i686/usr/lib/debug/usr/bin/textconv.debug - relative source directory "X" in .debug_lines table at offset 1623 without comp_dir in .debug_section compilation unit at offset 8017 used for file iblit24.s - relative source directory "X" in .debug_lines table at offset 1933 without comp_dir in .debug_section compilation unit at offset 8119 used for file iblit32.s component: glibc file: glibc-debuginfo-2.13.90-3.i686/usr/lib/debug/lib/i686/nosegneg/libpthread-2.13.90.so.debug - relative source directory "XXXXXXX" in .debug_lines table at offset 32914 without comp_dir in .debug_section compilation unit at offset 116831 used for file pthread_cond_broadcast.S - relative source directory "../nptl/sysdeps/i386" in .debug_lines table at offset 37472 without comp_dir in .debug_section compilation unit at offset 126319 used for file pthread_spin_unlock.S 3. Various non-C/C++ files are not packaged into debuginfo packages, despite being referenced in .debug sections: component: castor file: castor-debuginfo-0.9.5-6.fc15.1.i686/usr/lib/debug/usr/lib/gcj/castor/castor-0.9.5.jar.so.debug - missing source file castor-debuginfo-0.9.5-6.fc15.1.i686/usr/src/debug/castor-0.9.5/aot-compile-rpm/usr/lib/gcj/castor/castor-0.9.5.jar.1.jar in the debuginfo package component: gnutls file: gnutls-debuginfo-2.10.5-1.fc16.i686/usr/lib/debug/usr/bin/gnutls-serv.debug - missing source file gnutls-debuginfo-2.10.5-1.fc16.i686/usr/src/debug/gnutls-2.10.5/src/gaa.skel in the debuginfo package component: cernlib file: cernlib-debuginfo-2006-35.fc14.i686/usr/lib/debug/usr/bin/nydiff-gfortran.debug - missing source file cernlib-debuginfo-2006-35.fc14.i686/usr/src/debug/cernlib-2006/2006/build/patchy/nydiff.f in the debuginfo package 4. A .debug file points to source files which seem to belong to other debuginfo packages. This seem like a packaging/build process error, but I'm not sure. component: fillmore-lombard file: fillmore-lombard-debuginfo-0.1.0-5.fc15.i686/usr/lib/debug/usr/bin/fillmore.debug - missing source file fillmore-lombard-debuginfo-0.1.0-5.fc15.i686/usr/src/debug/media-0.1.0/src/fillmore/marina.vapi in the debuginfo package - missing source file fillmore-lombard-debuginfo-0.1.0-5.fc15.i686/usr/src/debug/media-0.1.0/src/fillmore/glib-2.0.vapi in the debuginfo package component: ghdl file: ghdl-debuginfo-0.29-2.143svn.4.fc16.i686/usr/lib/debug/usr/bin/ghdl.debug - missing source file ghdl-debuginfo-0.29-2.143svn.4.fc16.i686/usr/src/debug/gcc-4.3.4/obj-i686-fedora_ghdl-linux/gcc/vhdl/drvdir/b~ghdl_gcc.ads in the debuginfo package - missing source file ghdl-debuginfo-0.29-2.143svn.4.fc16.i686/usr/src/debug/gcc-4.3.4/obj-i686-fedora_ghdl-linux/gcc/vhdl/drvdir/b~ghdl_gcc.adb in the debuginfo package Karel
Attachment:
find-missing-debuginfo
Description: Debuginfo checker, the latest version
-- devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/devel