Demande de conseils pour débugger un programme

Bonjour,

Je cherche à participer au projet Debian sur un bug que je rencontre justement chez moi. Malheureusement, je ne suis pas familier avec les méthodes de débuggage d’un paquet Debian.

Ce que j’aimerais

J’aimerais avoir la possibilité d’utiliser gdb convenablement sur le programme.

Ce que j’ai déjà compris

J’ai remarqué que le binaire de mon application était strippé et qu’une version suffixée par -dbg était disponible. Je l’ai donc installée et j’accède maintenant aux infos de débuggage.

J’ai aussi téléchargé le code source de mon paquet et de ses dépendances impliquées dans la back trace (à savoir libgtk et libglib).

Ce qui me bloque

Je ne sais pas comment modifier l’application (pour y ajouter des traces, faire des tests, etc.) et la recompiler. En effet, je pense que je pourrais lire les README qui sont apparus quand j’ai téléchargé les sources et probablement dérouler leurs procédures en configure, make et make install mais cela remplacerait ma version installée par aptitude non ?

Ce que je voudrais, c’est compiler l’application dans mon coin, tout seul sans rien casser, c’est-à-dire me faire un binaire qui n’aille pas dans l’arborescence standard de mon système.

J’ai trouvé beaucoup de docs qui expliquent comment choisir un bug sur lequel travailler, etc. mais rien concernant cet aspect. Je suis tout de même tombé sur une légère allusion à mon soucis qui évoquait la possibilité de faire un chroot pour pallier à mon problème mais je ne suis pas bien au point là-dessus.

Ce que j’espère obtenir

Une documentation adaptée, des conseils sur cette histoire de chroot ?

Merci beaucoup pour toute aide :slight_smile:

Salut Phi,

Pour la parti "déclaration de bug, je passe …

[quote=“Phi”]Ce que j’espère obtenir

Une documentation adaptée, des conseils sur cette histoire de chroot ?
[/quote]

Un bon live-cd : Debian live-cd fera très très bien l’affaire.

Démarrage sur le live-cd.

Accéder à la console en root.

[code]:~$ sudo -s

[/code]

Une très bonne doc pour ce faire !!!

Voir le wiki Debian : Solution avec un chroot > isalo.org/wiki.debian-fr/ind … _un_chroot

ps: sur ce tuto il s’agit de la ré-installation de grub, n’en tiens pas compte bien sûr, Mais pour le chroot, les doigts dans le nez, … les deux mains dans le dos … :023

Mis en pratique !!!

je t’en serre cinq … :wink:

Salut et merci pour ton aide.

J’ai déjà chrooté un environnement via un live CD (tuto à l’appui, je me rappelle plus très bien donc merci pour ton lien ^^) mais j’imaginais pas que j’aurais à utiliser un live CD pour arriver à mes fins ? Mon but étant de travailler sur un bug, j’aurai sûrement besoin de temps, de mes outils, etc. Y’a pas moyen de créer une petite arboresnce dans ~/temporaire par exemple pour demander une compilation là-dedans ? Mais sans être sur un live CD ?

Sinon, pour explorer une autre piste, il doit être possible dans certains cas de simplement faire le binaire via un make (sans le make install) pour le lancer dans son répertoire de compilation… Je sais bien que ça marchera pas forcément pour toutes les applications mais j’aimerai essayer sauf que je rencontre des problèmes comme par exemple :

[code]checking for XLIB… configure: error: Package requirements (“x11”) were not met:

No package ‘x11’ found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables XLIB_CFLAGS
and XLIB_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
[/code]

Vous continuerez dans cette voix ou c’est pas une bonne façon de travailler ?

Salut,

je ne trouve plus la page qui-va-bien sur le wiki qui indiquait comment faire pour recompiler un paquet avec les traces.

Pour l’histoire du chroot, pas la peine de passer par un liveCD, sinon tu n’es pas tiré d’affaire.
Soit tu fais un chroot à la main (cette fois il y a une page de doc sur le wiki).
Soit tu passes par pbuilder, qui te construit automatiquement un environnement propre minimal pour tester des paquets. À défaut d’un tuto, je te donne mes notes personnelles qui devraient te permettre de commencer:

# Créer l'environnement (dans /var/cache/pbuilder par défaut)
 sudo pbuilder create --debootstrapopts --variant=buildd
# Pour aller dans le chroot
 sudo pbuilder login --save-after-login 
# Là dedans tu peux installer ton paquet de test sans crainte.

Attention un chroot peut être relativement volumineux de base (prévoir 1 Go).

La plupart du temps, configure autorise une option –prefix=… pour dire où se fera l’installation des binaires lors du make install. Rien ne t’empêche de faire pointer ça sur un répertoire se trouvant dans ton home, d’ailleurs.

Je n’ai jamais essayé d’installer un programme en double comme ça (paquet officiel + compilation perso), mais à priori ça ne devrait pas poser de gros problème. Faudra peut-être rajouter temporairement les bons répertoires (bin/ et lib/ correspondant au préfixe que tu auras configuré) en tête de PATH et LD_LIBRARY_PATH lorsque tu voudras utiliser ta version, si le programme en question est composé de plusieurs binaires. C’est tout ce à quoi je pense pour le moment.

As-tu installer Emacs ?

Sinon tu télécharges les sources.

Tu lances Emacs. Tu fais un make pour le compiler. (Alt +x compile)

Tu lances gdb (Alt +x gdb)

Et tu as un environnement de déboguage

A+

A chacun sa méthode.
Perso je me fais une machine virtuelle avec kvm et qemu.
Ca permet ainsi de tester sur plusieurs architectures (x86, x86-64, ARM dans mon cas)

Merci pour vos conseils, je me suis arrêté au make et ai donc laissé de côté le “make install” pour ne produire qu’un binaire dans mon répertoire perso. Pour mon prochain débuggage, j’essaierai de me tourner vers pbuilder qui a l’air d’être la bonne solution à ma question.