next up previous contents index
Next: Variables et pile d'appel. Up: DDD et la structure Previous: Tracer une fonction.

Les niveaux dans la pile d'appel.

Si le programme que l'on est en train de déboguer comporte des définitions de fonctions, lorsqu'il est interrompu au niveau d'un breakpoint, on peut choisir de continuer son exécution pas à pas en cliquant sur le bouton Step (comme indiqué ci-dessus) ou en cliquant sur Next : alors que Step fait vraiment du pas à pas, Next reste au même niveau dans la pile d'appel des fonctions. Ceci signifie que si la prochaine instruction est un appel à une fonction définie dans le programme, Step aura pour effet d'interrompre l'exécution à la première instruction du corps de la fonction, alors que Next exécutera la totalité de l'appel à la fonction, et s'arrêtera sur l'instruction qui suit l'appel de fonction.

On voit ainsi se dessiner une notion de niveau : un appel de fonction rajoute un niveau, alors que le return concluant l'exécution d'une fonction en enlève un. Le bouton Finish sert à continuer l'exécution du programme jusqu'à terminer un niveau : si l'exécution a été interrompue à l'intérieur d'une fonction, cliquer sur ce bouton aura pour effet de relancer l'exécution, sans s'arrêter sur des appels de fonction ultérieurs, mais juste après le return correspondant à la fonction dans laquelle on se trouve (et par conséquent au niveau de l'appel à la fonction dans laquelle on se trouvait au moment de cliquer sur Finish). En particulier, si l'exécution du programme est interrompue sur une instruction du programme principal, cliquer sur Finish revient à cliquer sur Cont.


Rene Lalement
Mon Sep 30 18:22:54 MET 1996