Connexion
Les Outils pratiques de Mageia

Obtenir une backtrace pour ouvrir un rapport de bug

Table des matières


A qui s'adresse cet article ?




Aux personnes ayant déjà un minimum d'expérience sous Linux et Mageia et souhaitant participer à son développement.
  • Savoir configurer ses dépôts.
  • Avoir les notions élémentaires sur l'utilisation de la console.
  • Maitriser un minium l'anglais pour écrire un rapport est recommandé (mais on peut faire sans)



A quelle(s) situation(s) s'applique(ent) cet article ?




Nous allons parler ici des programmes qui "plantent" comme on le dit souvent et qui se traduit souvent par une fermeture non désirée du programme... Ce sera utile pour les testeurs de cauldron (version de développement de Mageia, mais aussi pour les versions stables : des bugs subsistent toujours !

Lorsqu'une application plante ou pire, ne démarre pas, on applique de suite quelques réflexes :
  • Est ce reproductible : tout le temps, souvent, parfois... pas reproductible.
  • Si je démarre l'appliction dans une console, est-ce que j'ai des informations ?


Les applications doivent être lancées en tant qu'utilisateur et non root ! (sauf cas particulier) On tape directement le nom de l'executable dans la console. ex : kwrite
L'une des choses auquel on sera attentif est le fameux segfault ou segmentation fault, erreur de segmentation en français.


Générer une backtrace




Une backtrace est la suite des appels de fonction du programme. Utile aux devs pour savoir ce qui "s'est passé".

Certaines applications possèdent des utilitaires qui affichent et proposent d'envoyer un rapport de bug. C'est le cas de KDE par exemple. Le soucis, c'est qu'en l'état, ce n'est pas complet (si vous voyez des ?? partout, c'est que ce n'est pas bon).
D'autres programmes n'ont pas ce genre d'utilitaire : gajim, xchat... et il faudra faire ça manuellement.
Parfois il y a des exceptions à la procedure, comme firefox ou thunderbird...

gdb, tu installeras



Code BASH :
urpmi gdb

Utile, c'est lui qui va générer la backtrace.

Les dépôts debug, tu activeras

Il faut des binaires "spéciaux" pour générer une backtrace, il faut installer des paquets supplémentaires.
Code BASH :
drakrpm-edit-media 

Là, on coche les dépôts debug.


Les paquets debug, tu installeras




Si on a un soucis avec gajim :
Code BASH :
urpmi gajim-debug
; A noter que ce n'est souvent pas suffisant, mais on le saura en temps voulu.
Pour des applications KDE, cette liste est un bon début :

Code BASH :
urpmi kdebase4-debug kdebase4-workspace-debug kdeplasma-addons-debug kdelibs4-debug kdenetwork4-debug

Code BASH :
urpmi kdepim4-debug kdepimlibs4-debug kdemultimedia4-debug amarok-debug digikam-debug qt4-debug



A la recherche du backtrace




C'est parti ! Si c'est une appli KDE, ou qui possède un utilitaire gentil qui génère ce qu'il faut, c'est facile.
Si c'est un autre programme, on sort une console et on démarre gdb :
Code BASH :
gdb gajim


Ensuite, on lance le programme (c'est plus lent que d'habitude, c'est normal)
Code BASH :
run


On reproduit le bug... (ça doit planter quoi :D ) et on le laisse bien terminer sa popote puis :
Code BASH :
bt full


Ca génère la backtrace. Deux cas de figures :
  • Tous les appels sont OK, pas de ??? partout et en avant pour un rapport.
  • Il y a des ?? partout, on regarde bien en haut, il va peut être vous demander d'autres paquets debug. Vous devinez, on installe ces paquets et on recommence. S'il n'y a pas de suggestion, on regarde le nom des bibliothèques (lib) ou des programmes et on cherche le bon paquet... il faut tatoner, mais c'est plutôt rare.


Le cas Mozilla



Thunderbird et Firefox passent par des scripts pour être lancé, si vous tentez la méthode ci-dessus, ça ne fonctionnera pas. A la place de gdb thunderbird, on lance
Code BASH :
thunderbird --debug

et le tour est joué.

Retour :Utiliser Mageia

Cette page a été vue 4545 fois