Appendix D. Débuggage

Information générale

Le débuggage est une compétence que vous pouvez apprendre. Il existe assez peu de bons documents qui décrivent comment effectuer un bon rapport de bug. Nous vous en prions lisez les avant de rentrer dans l'arène, ainsi votre bug ne s'enfuiera pas et ne vous massacrera pas. Nous préferons plutôt éliminer le bug et nous voulons votre aide :-) Donc rendons nous à la bataille bien préparé. Deux bons documents sont Howto du rapport de bug Bugzilla (Bugzilla Bug Reporting HOWTO) et Comment rapporter les bugs efficacement (How to Report Bugs Effectively) par Simon Tathams.

Informations spécifiques à Fluxbox

Messages textes de Fluxbox

Comme toutes autres applications, Fluxbox envoie tout les messages sur la console où il a été démarré. Le problème est que dans des circonstances normales tout les messages vont sur la console text. Changez la ligne de démarrage de Fluxbox par exec xterm ou par votre favori emulateur de terminal. Démarrez Fluxbox dans cet xterm, et vous pourrez facilement voir tout les messages provenant de Fluxbox.

Les information que nous voulons

Nous voulons connaitre beaucoup de choses. Soyez sûr de tout savoir à leurs propos.

Que faire avec les core-dumps.

Si jamais vous avez un core dumping de fluxbox que vous avez récupéré sur le CVS, faites la chose suivante : allez sur le channel #fluxbox sur OPN et dites à fluxgen que vous avez un coredump. Donnez-lui toutes les informations qu'il vous demande. Il vous demandera aussi de faire ce qui suit. C'est quand même beaucoup de travail mais n'importe qui avec un peu de bon sens et une petite expérience d'Unix peut le faire. Ah, et vous aurez besoin du débuggeur de GNU, appelé gdb.

Recompilez Fluxbox

Oui vous avez bien lu. Pour devenir un vrai traqueur de bug, vous devez recompiler Fluxbox avec les symboles de débuggage.

Compilez fluxbox comme d'habitude et ajoutez les options suivantes quand vous faites le make :

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

Si vous utilisez les RPMS source du site de fluxbox ou de votre distribution vous devez faire ceci :

    $ 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

Rendez vous dans le répertoire de Fluxbox (Comme cela nous avons le core dump au bon endroit). Le shell a une option très utile qui permet de désenclencher les fichiers core. Vérifiez que vous avez vraiment un fichier core avec :

    $ ulimit -c unlimited

Démarrez X et commençons le débuggage. Faites ce qu'il est nécessaire afin d'obtenir un core dump de Fluxbox. Et maintenant démarrons le débuggage :

    $ gdb fluxbox core

Puis tapez cette commande dans gdb (la première partie est le promt de gdb, ne l'inscrivez pas :)) :

    (gdb) where

Maintenant vous avez pleins de messages. Fluxgen voudrait connaître tous les messages commençant par un #.

Maintenant, copier cela dans un e-mail en envoyez le tout à fluxgen et attachez aussi les quatre fichiers de configuration qui se trouvent dans ~/.fluxbox.

Ne supprimez pas encore le fichier core et le répertoire des sources. Fluxgen pourrait vous poser d'autres questions et vous en auriez besoin. N'envoyez pas le fichier core à fluxgen si il ne vous l'a pas demandé - si le problème est spécifique à votre système, il sera probablement inutile pour lui et les fichiers core sont assez volumineux.