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.