Appendix E. Debugging

Informazioni Generali

Il debugging è un'abilità che puoi imparare. Ci sono pochi buoni documenti che descrivono come ben segnalare i bugs. Leggili prima di iniziare tanto il bug non scapperà via e non tenterà di ucciderti. Piuttosto, siamo noi che vogliamo eliminare ogni bug e necessitiamo anche del tuo aiuto. Prepariamo bene la battaglia quindi. Due buoni documenti sono Bugzilla Bug Reporting HOWTO e How to Report Bugs Effectively di Simon Tathams.

A causa del numero e della natura di alcune patch non ufficiali, non le possiamo supportare tutte. Questo significa (per te) che devi controllare se Fluxbox va in crash anche senza le eventuali patch che puoi aver applicato. Se queste sono state applicate da mantainer di una qualche distribuzione, contattalo a riguardo.

Se debuggando necessiti di un aiuto maggiore rispetto a quello fornito da questa guida, puoi anche vedere se qualcuno del canale #fluxbox su irc.freenode.net è di aiuto. Siccome gli sviluppatori principali e un gruppo di persone qualificate sono spesso lì, ci sono buone possibilità che possano risolveree il problema.

Elementi specifici di Fluxbox

L'output di Fluxbox

Come ogni altra applicazionne, Fluxbox manda tutti i messaggi al terminale da cui è stato lanciato. Il problema è che in circostanze normali tutto l'output và ad un terminale di tipo testo. Cambia il comando con cui lanci Fluxbox in exec xterm o nell'emulatore di terminale che preferisci. Lancia X11 e fai partire Fluxbox nell'xterm e potrai facilmente vedere tutti i messaggi di output.

Le informazioni che vogliamo

Noi vogliamo conoscere molte cose. Assicurati di conoscerle bene.

Cosa fare con i core dumps

Se ti ritrovi ad avere un core dump con Fluxbox, fai come segue: vai sul canale #fluxbox su OPN e di a fluxgen come hai avuto il dump. Dagli tutte le informazioni che ti chiede. Inoltre ti chiederà probabilmente di fare come segue. E'un pò di lavoro ma chiunque possieda una minima esperienza con Unix può tranquillamente svolgerli. Oh, avrai bisogno del debugger GNU, che si chiama gdb.

Ricompilare Fluxbox

Si, stai leggendo bene. Per diventare un vero debugger devi ricompilare Fluxbox con i simboli del debugger.

Ricompilare Fluxbox come solito e aggiungere la seguente opzione quando lanci il make:

    $ CFLAGS=-Wall -g3 CXXFLAGS=-Wall -g3 make

Se utilizzi i sorgenti via RPM dal sito di Fluxbox o della tua distribuzione, puoi fare qualcosa del tipo:

    $ su
    # rpm -ivh fluxbox-0.1.11.1mdk.src.rpm
    # cd /usr/src/RPM/SPECS
    # env DEBUG=true rpm -ba fluxbox.spec
    # rpm -Uvh --force /usr/src/RPM/RPMS/i686/fluxbox*
    # exit
    $ mkdir -p ~/src/fluxbox
    $ cp -R /usr/src/RPM/BUILD/fluxbox* ~/src/fluxbox

Vai alla directory dii Fluxbox (così possiamo avere il core dump ne l posto giusto). La shell ha una apprezzabile caratteristica che disabilita i core-files, così dobbiamo essere sicuri di averla abilitata così:

    $ ulimit -c unlimited

Lancia X11 e comincia il debug. Fai qualsiasi cosa per avere il core dump. Cominciamo quindi:

    $ gdb fluxbox core

Digitando questi comandi in gdb (La prima parte è il prompt di gdb, non scriverla :)):

    (gdb) where

Ora otterrai una gran quantità di output. Fluxgen necessita di tutto quello che comincia con #.

Copialo in una e-mmail e spediscilo a Fluxgen ad allega inoltre anche i quattro files di configurazione contenuti in ~/.fluxbox/.

Per favore, non rimuovere il core e la directory che contiene i sorgenti. Fluxgen potrebbe chiederti qualche altra informazione per cui ne puoi avere ancora bisogno. Per favore non inviare il core file a Fluxgen se non ti è stato specificatamente richiesto - in quanto questo file è specifico per la tua macchina e molto probabilmente non è necessario e tende ad avere dimensioni enormi.