Indice:BRTableOfContents |
Questo documento descrive come installare pacchetti di debug in Ubuntu.
Edgy Eft 6.10
Usare questa sezione solo se si possiede Ubuntu Edgy 6.10. Anche in caso di versioni precedenti seguire quanto segue:
1. Aggiungere la seguente linea in /etc/apt/sources.list:
{{{deb http://people.ubuntu.com/~pitti/ddebs edgy main universe
}}}
2. Importare la chiave pubblica di Martin sul sistema:
wget -q "http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x0DE7276D5E0577F2" -O- | sudo apt-key add -
3. Quindi digitare
sudo apt-get update
per aggiornare la lista dei pacchetti.
4. I simboli dei pacchetti del debug hanno allegato il suffisso '-dbgsym', cosi' per installare i simboli di debug per il pacchetto 'yelp', digitare:
sudo apt-get install yelp-dbgsym
- Adesso e' stata realizzata una ["Backtrace"].
- Eseguire ["Valgrind"], se il programma crasha causa "Segmentation fault" o "Bus error".
- A scelta, potrebbe venir chiesta una ["Strace"].
Referenze
Feisty Fawn 7.04
Questo passo descrive quanto detto in precedenza per Edgy anche per Feisty, aggiungere la seguente linea al file /etc/apt/sources.list:
{{{deb http://people.ubuntu.com/~pitti/ddebs feisty main universe
}}}
Gutsy Gibbon 7.10
Come gia' esposto in precedenza, aggiungere la seguente linea in '/etc/apt/sources.list' :
{{{deb http://people.ubuntu.com/~pitti/ddebs gutsy main universe
}}}
Versioni di Ubuntu precedenti
Questa sezione riguarda le versioni che precedono Edgy 6.10.
Contrllare se il pacchetto e' disponibile per la versione di debbugging. Generalmente, i pacchetti di debug saranno identificati con il suffisso -dbg
- Se non e' disponibile, e' possibile crearne uno in questo modo:
Da tenere a mente: se si vuole creare un pacchetto, assicurarsi di avere la linea deb-src in /etc/apt/sources.list
- Installare lo script seguente:
sudo apt-get install devscripts fakeroot
- Find out to which package your program belongs to:
dpkg --search <program>
- Install the build-time dependencies for the package:
sudo apt-get build-dep <package>
- Build .debs for debugging:
export DEB_BUILD_OPTIONS="debug nostrip noopt" fakeroot apt-get source -b <package>
- Install the needed .debs (they will be in the current working directory if the build succeeded):
sudo debi <package>*.changes
* Most packages support the build of debugging version in this way. If this process doesn't work for a package, please open a bug against it.
The Xorg server
The X server will by default trap its own crashes and dump a stack trace in /var/log/Xorg.0.log. However, this stack trace is modified by the signal handler itself. To get a "normal" crash, which will trigger a core dump (and apport reporting), add this to your /etc/X11/xorg.conf:
Section "ServerFlags" Option "NoTrapSignals" "true" EndSection
Info for the BugSquad
If you're trying to apport-retrace a crash report from a bug that didn't happen on the same Ubuntu release as the one you're running, do the following:
Say that you're running feisty and the crash happened on edgy:
This will create a minimal edgy system.
sudo mkdir -p /chroots/edgy sudo debootstrap edgy /chroots/edgy/
Now you change into this minimal edgy system.
sudo chroot /chroot/edgy
edit /etc/apt/sources/list and all the repositories you need, especially Martin's ddeb repository.
apt-get update; apt-get install gdb apport
use apport-retrace as you're used to.