Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Programmazione/Debug"
Differenze tra le versioni 21 e 28 (in 7 versioni)
Versione 21 del 30/09/2008 13.26.10
Dimensione: 3754
Commento:
Versione 28 del 14/03/2011 12.54.55
Dimensione: 3559
Autore: localhost
Commento: converted to 1.6 markup
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 4: Linea 4:
[[BR]]
[[Indice()]]
<<BR>>
<<Indice>>
Linea 13: Linea 13:
È necessario adeguare la propria [:SourcesList:lista] dei [:Repository:repository] in modo da poter installare gli strumenti necessari alle operazioni di debug. Aprire il file `/etc/apt/sources.list` con un [:Ufficio/EditorDiTesto:editor di testo] con i [:AmministrazioneSistema/Sudo:privilegi di amministrazione] e aggiungere le righe adatte alla versione in uso: È necessario adeguare la propria [[SourcesList|lista]] dei [[Repository|repository]] in modo da poter installare gli strumenti necessari alle operazioni di debug. Aprire il file `/etc/apt/sources.list` con un [[Ufficio/EditorDiTesto|editor di testo]] con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] e aggiungere le righe adatte alla versione in uso:
Linea 16: Linea 16:
deb http://people.ubuntu.com/~pitti/ddebs gutsy main universe
}}}
 * '''Ubuntu 7.10''' «'''Gutsy Gibbon'''»: {{{
deb http://people.ubuntu.com/~pitti/ddebs gutsy main universe
}}}
 * '''Ubuntu 6.10''' «'''Edgy Eft'''»: {{{
deb http://people.ubuntu.com/~pitti/ddebs edgy main universe
deb http://people.ubuntu.com/~pitti/ddebs hardy main universe
Linea 25: Linea 19:
Per importare la chiave [:Sicurezza/GnuPG:gpg] è sufficiente digitare il seguente comando in una finestra di terminale: Per importare la chiave [[Sicurezza/GnuPg|gpg]] è sufficiente digitare il seguente comando in una finestra di terminale:
Linea 42: Linea 36:
 a. Adesso è stato realizzato un [wiki:Ubuntu/Backtrace Backtrace];
 a. eseguire [:Programmazione/Valgrind:Valgrind], se il programma crasha a causa di ''Segmentation fault'' o ''Bus error'';
 a. a scelta, potrebbe venir chiesta una wiki:Ubuntu/Strace.
 a. Adesso è stato realizzato un [[Ubuntu:Backtrace|Backtrace]];
 a. eseguire [[Programmazione/Valgrind|Valgrind]], se il programma crasha a causa di ''Segmentation fault'' o ''Bus error'';
 a. a scelta, potrebbe venir chiesta una Ubuntu:Strace.
Linea 47: Linea 41:
= Versioni di Ubuntu precedenti = ##= Versioni di Ubuntu precedenti =
Linea 49: Linea 43:
Questa sezione riguarda le versioni che precedono '''Ubuntu 6.10''' «'''Edgy Eft'''». ##Questa sezione riguarda le versioni che precedono '''Ubuntu 6.10''' «'''Edgy Eft'''».
Linea 51: Linea 45:
||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;"> ''Se si vuole creare un pacchetto, assicurarsi di avere la linea deb-src in `/etc/apt/sources.list`''|| ##||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;"> ''Se si vuole creare un pacchetto, assicurarsi di avere la linea deb-src in `/etc/apt/sources.list`''||
Linea 53: Linea 47:
Controllare se il pacchetto è disponibile per la versione di debugging. Generalmente, i pacchetti di debug saranno identificati con il suffisso `-dbg`. ##Controllare se il pacchetto è disponibile per la versione di debugging. Generalmente, i pacchetti di debug saranno identificati con il suffisso `-dbg`.
Linea 55: Linea 49:
Se non è disponibile, è possibile crearne uno in questo modo: ##Se non è disponibile, è possibile crearne uno in questo modo:
Linea 57: Linea 51:
installare lo script seguente: {{{
sudo apt-get install devscripts fakeroot
}}}
##installare lo script seguente: {{{
##sudo apt-get install devscripts fakeroot
##}}}
Linea 61: Linea 55:
scoprire quale pacchetto appartiene al proprio programma: {{{
dpkg --search <program>
}}}
##scoprire quale pacchetto appartiene al proprio programma: {{{
##dpkg --search <program>
##}}}
Linea 65: Linea 59:
installare le dipendenze:{{{
sudo apt-get build-dep <package>
}}}
##installare le dipendenze:{{{
##sudo apt-get build-dep <package>
##}}}
Linea 69: Linea 63:
creare `.deb` per il debugging:{{{
export DEB_BUILD_OPTIONS="debug nostrip noopt"
fakeroot apt-get source -b <package>
}}}
##creare `.deb` per il debugging:{{{
##export DEB_BUILD_OPTIONS="debug nostrip noopt"
##fakeroot apt-get source -b <package>
##}}}
Linea 74: Linea 68:
installare i necessari `.deb` (si troveranno nella cartella di lavoro, in caso di successo nella creazione): {{{
sudo debi <package>*.changes
}}}
##installare i necessari `.deb` (si troveranno nella cartella di lavoro, in caso di successo nella creazione): {{{
##sudo debi <package>*.changes
##}}}
Linea 85: Linea 79:
Linea 88: Linea 81:
 * [https://wiki.ubuntu.com/DebuggingProgramCrash Documento originale]
 * [[https://wiki.ubuntu.com/DebuggingProgramCrash|Documento originale]]


Introduzione

Questo documento descrive come installare pacchetti per eseguire le operazioni di debug in Ubuntu.

Preparativi

È necessario adeguare la propria lista dei repository in modo da poter installare gli strumenti necessari alle operazioni di debug. Aprire il file /etc/apt/sources.list con un editor di testo con i privilegi di amministrazione e aggiungere le righe adatte alla versione in uso:

  • Ubuntu 8.04 «Hardy Heron»:

    deb http://people.ubuntu.com/~pitti/ddebs hardy main universe

Per importare la chiave gpg è sufficiente digitare il seguente comando in una finestra di terminale:

wget -q "http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x0DE7276D5E0577F2" -O- | sudo apt-key add -

Infine aggiornare la lista dei pacchetti con il seguente comando:

sudo apt-get update

Installare programmi per il debugging

Per installare i pacchetti dei simboli per il debug è utile ricordarsi che tali pacchetti hanno il suffisso «-dbgsym». Ad esempio, per installare i simboli di debug per il pacchetto yelp, occorre digitare il seguente comando:

sudo apt-get install yelp-dbgsym
  1. Adesso è stato realizzato un Backtrace;

  2. eseguire Valgrind, se il programma crasha a causa di Segmentation fault o Bus error;

  3. a scelta, potrebbe venir chiesta una Strace.

Xorg server

Il server X server è in grado di gestire i crash creando uno "scarico" (dump) lasciando la traccia in /var/log/Xorg.0.log. Questa traccia è modificata dallo stesso segnale responsabile. Per ottenere un "normale" crash, cioè che crei un core dump (e un resoconto tramite apport), aggiungere nel file /etc/X11/xorg.conf la seguente opzione:

Section "ServerFlags"
        Option "NoTrapSignals" "true"
EndSection

Ulteriori risorse


CategoryProgrammazione CategoryDaRevisionare