Langage
C - Travaux Dirigés n° 3
Exercice n° 1 (Examen de la pile
d'exécution)
Récupérer sur la page WEB le source du programme fibonacci.c et compiler le en utilisant
l'option -g de gcc. Avec cette option, gcc ajoute dans le code objet des infomations de debugging.
Le programme peut alors être exécuté sous contrôle en
utilisant le débogueur gdb. Pour cela, taper dans Emacs Alt-x gdb, , puis le nom du programme exécutable,
ici fibonacci. Dans la fenêtre (gdb) d'Emacs, on dispose alors des commandes suivantes pour contrôler
l'exécution le programme.
- run lance l'exécution du
programme. les entrées sorties se font alors dans la fenêtre (gdb) d'Emacs.
- break (Ctrl-x Space ou Ctrl-x Ctrl-a Ctrl-b)
positionne un point d'arrêt. Le programme s'arrête à chaque fois qu'il
passe à cet endroit. On peut alors examiner le contenu des variables et de
la pile.
- delete
supprime le point d'arrêt No - next exécute une ligne du
programme sans traverser les appels de fonctions (Ctrl-x Ctrl-a Ctrl-n).
- step exécute une ligne du
programme en traversant les appels de fonctions (Ctrl-x Ctrl-a Ctrl-s).
- finish exécute le programme
jusqu'à la fin de la fonction (Ctrl-x Ctrl-a Ctrl-f).
- cont continue l'exécution du
programme(Ctrl-x Ctrl-a Ctrl-r) .
- info stack affiche le contenu de la
pile.
- up et down permettent de se déplacer
dans la pile pour examiner le contenu des variables (Ctrl-x Ctrl-a < et Ctrl-x Ctrl-a >).
- print
affiche la valeur de l'expression. Les valeurs des variables utilisée dans l'expression sont celles données par le bloc de pile sélectionné. C'est par défaut le bloc le plus interne mais ceci peut être modifié par les commandes up, down ou frame . - display
demande l'affichage de l'expression à chaque arrêt du programme.
Ces commandes sont aussi accessibles par les menus. Il
existe beaucoup d'autres commandes disponibles. Pour en savoir plus, utiliser
la commande help. Placer un point d'arrêt sur la première ligne de la
fonction fibo et lancer l'exécution du programme. Le programme
s'arrête au premier passage dans la fonction fibo. Examiner le contenu de
la pile puis relancer le programme. Examiner à nouveau la pile puis relancer à
nouveau. Recommencer jusqu'à a terminaison du programme.
Exercice n° 2
Quel est le nombre d'appels récursifs que provoque l'appel à la
fonction fibo avec un entier n. Expérimenter en utilisant une variable globale puis
expliquer.

Enregistrer un commentaire