Je veux déboguer l’ensemble du flux d’un programme Java. Quelle est la différence entre F5 (entrer dans) et F6 (passer) dans Eclipse?
Considérez le code suivant avec votre pointeur d’instruction actuel (la ligne qui sera exécutée ensuite) à la ligne f(x);
dans g()
, après avoir été appelé par la ligne g(2)
dans main()
:
public class testprog {
static void f (int x) {
System.out.println ("num is " + (x+0)); // <- step into
}
static void g (int x) {
-> f(x); // <----------------------------------- current location
f(1); // <----------------------------------- step over
}
public static void main (String args[]) {
g(2);
g(3); // <----------------------------------- step out of
}
}
Si vous deviez commencer par dans à ce moment-là, vous passerez à la ligne println()
dans f()
, en entrant dans l'appel de fonction.
Si vous deviez passer sur à ce moment-là, vous passerez à la ligne f(1);
dans g()
, en passant au-dessus de l'appel de fonction.
Une autre fonctionnalité utile des débogueurs est l'étape sur ou étape retour. Dans ce cas, un retour pas à pas vous fera parcourir la fonction actuelle jusqu'à ce que vous remontiez d'un niveau. En d’autres termes, il suivra les étapes f(x)
et f(1)
, puis reviendra à la fonction appelante pour se retrouver à g(3);
dans main()
.
Eclipse (du moins Europa, qui est le seul que j’ai sous la main pour le moment) utilise F5 pour step into
, F6 pour step over
et F7 pour step return
.
Lors du débogage des lignes de code, voici les scénarios habituels:
Eclipse dispose d'autres fonctionnalités avancées de débogage, mais ce sont les bases fondamentales.
entrer dans volonté Dig dans les appels de méthode
step over exécutera simplement la ligne et passera à la suivante
Vous ne pouvez pas entrer dans les détails de la méthode en utilisant le pas à pas. Si vous voulez ignorer la ligne en cours, vous pouvez utiliser l'étape suivante, vous n'avez qu'à appuyer sur la touche F6 pour une seule fois pour passer à la ligne suivante. Et si vous pensez qu'il y a quelque chose qui cloche dans la méthode, utilisez F5 examiner les détails.
Step Into L'expression suivante sur la ligne à exécuter actuellement sélectionnée est invoquée et l'exécution est suspendue à la prochaine ligne exécutable de la méthode appelée.
Pas à pas La ligne actuellement sélectionnée est exécutée et suspendue à la prochaine ligne exécutable.