Re: Bugs in debuginfo packages

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux