Features/DebuginfoFS

From FedoraProject

< Features(Difference between revisions)
Jump to: navigation, search
m (bad hr!)
(How To Test: simple test run)
Line 27: Line 27:
  
 
== How To Test ==
 
== How To Test ==
 +
 +
1. Prepare a debuginfo server
 +
* ''Instructions / public instance coming soon''
 +
 +
2. Install debuginfofs
 +
* ''git repo / packages coming soon''
 +
 +
3. Mount debuginfofs
 +
sudo service debuginfofs start
 +
 +
4. Crash a program in gdb
 +
[wwoods@metroid debuginfofs]$ '''gdb $(which sleep)'''
 +
GNU gdb Fedora (6.8-29.fc10)
 +
Copyright (C) 2008 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 "i386-redhat-linux-gnu"...
 +
(gdb) '''set args 999'''
 +
(gdb) '''run'''
 +
Starting program: /bin/sleep 999
 +
'''[Hit Ctrl-C]'''
 +
Program received signal SIGINT, Interrupt.
 +
__kernel_vsyscall () at arch/x86/vdso/vdso32/int80.S:16
 +
16 arch/x86/vdso/vdso32/int80.S: No such file or directory.
 +
in arch/x86/vdso/vdso32/int80.S
 +
Current language:  auto; currently asm
 +
(gdb) '''bt'''
 +
#0  __kernel_vsyscall () at arch/x86/vdso/vdso32/int80.S:16
 +
#1  0x008ac430 in __nanosleep_nocancel () from /lib/libc.so.6
 +
#2  0x0804abd3 in xnanosleep (seconds=999) at xnanosleep.c:112
 +
#3  0x080490f6 in main (argc=2, argv=0xbffff514) at sleep.c:150
 +
(gdb)
 +
 +
If everything is working as expected, you will see the function/file names, as above.
 +
 
<!-- This does not need to be a full-fledged document.  Describe the dimensions of tests that this feature is expected to pass when it is done.  If it needs to be tested with different hardware or software configurations, indicate them.  The more specific you can be, the better the community testing can be.  
 
<!-- This does not need to be a full-fledged document.  Describe the dimensions of tests that this feature is expected to pass when it is done.  If it needs to be tested with different hardware or software configurations, indicate them.  The more specific you can be, the better the community testing can be.  
  

Revision as of 22:17, 28 January 2009

Contents

Summary

A read-only, internet-mountable filesystem that provides debuginfo (for use with Package-x-generic-16.pnggdb and other debugging tools), and

a client service to mount the debuginfo filesystem when needed.

Owner

Current status

  • Targeted release: Fedora 21
  • Last updated: January 22, 2009
  • Percentage of completion: 10%

Detailed Description

When a program crashes or is otherwise misbehaving, one of the most helpful things to put in a bug report is a traceback of the offending process, gathered by using Package-x-generic-16.pnggdb. GNOME's Package-x-generic-16.pngbug-buddy does this automatically. But without debugging info, the tracebacks are incomplete.

debuginfo-install can be used to install the needed debuginfo packages, but this takes a long time (2-5 minutes) and 95% of the installed data is unused.

This Feature will provide scripts and tools to provide a WebDAV filesystem containing all the debuginfo needed for everything in Fedora, and a service to allow users (or automatic crash-reporting processes - like Features/CrashCatcher) to mount the filesystem when needed.

Benefit to Fedora

By simplifying the process of getting debugging info, we can improve the quality of bug reports, which should make it easier (and faster) to get bugs fixed.

Scope

How To Test

1. Prepare a debuginfo server

  • Instructions / public instance coming soon

2. Install debuginfofs

  • git repo / packages coming soon

3. Mount debuginfofs

sudo service debuginfofs start

4. Crash a program in gdb

[wwoods@metroid debuginfofs]$ gdb $(which sleep)
GNU gdb Fedora (6.8-29.fc10)
Copyright (C) 2008 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 "i386-redhat-linux-gnu"...
(gdb) set args 999
(gdb) run
Starting program: /bin/sleep 999
[Hit Ctrl-C]
Program received signal SIGINT, Interrupt.
__kernel_vsyscall () at arch/x86/vdso/vdso32/int80.S:16
16	arch/x86/vdso/vdso32/int80.S: No such file or directory.
	in arch/x86/vdso/vdso32/int80.S
Current language:  auto; currently asm
(gdb) bt
#0  __kernel_vsyscall () at arch/x86/vdso/vdso32/int80.S:16
#1  0x008ac430 in __nanosleep_nocancel () from /lib/libc.so.6
#2  0x0804abd3 in xnanosleep (seconds=999) at xnanosleep.c:112
#3  0x080490f6 in main (argc=2, argv=0xbffff514) at sleep.c:150
(gdb)

If everything is working as expected, you will see the function/file names, as above.


User Experience

Dependencies

Contingency Plan

Documentation

Release Notes

Comments and Discussion