Réponses:
Considérez le code suivant avec votre pointeur d'instruction actuel (la ligne qui sera exécutée ensuite, indiquée par ->
) à la f(x)
ligne in g()
, après avoir été appelée par la g(2)
ligne in 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); //
f(1); // <----------------------------------- STEP OVER
}
public static void main (String args[]) {
g(2);
g(3); // <----------------------------------- STEP OUT OF
}
}
Si vous étiez à l' étape dans à ce moment - là, vous passez à la println()
ligne f()
, entrer dans l'appel de fonction.
Si vous étiez à l' étape sur à ce moment - là, vous passez à la f(1)
ligne g()
, enjambant l'appel de fonction.
Une autre fonctionnalité utile des débogueurs est la sortie ou le retour d' étape . Dans ce cas, un retour d'étape vous fera essentiellement parcourir la fonction actuelle jusqu'à ce que vous remontiez d'un niveau. En d' autres termes, il va parcourir f(x)
et f(1)
, puis revenir en arrière à la fonction d' appel pour aboutir à g(3)
en main()
.
Eclipse (au moins Europa, qui est la seule que j'ai à portée de main en ce moment) utilise F5pour step into
, F6pour step over
et F7pour step return
.
g(3)
, dans main()
» <- Vous présumez que vous avez à votre emplacement actuel à partir g(2)
et une fois que vous êtes tout ce que vous fait revenir à sa ligne suivante g(3)
?
g(2)
ou non g(3)
), j'ai donc effacé cela dans le premier paragraphe. Merci pour l'information.
Lors du débogage de lignes de code, voici les scénarios habituels:
Eclipse possède d'autres fonctionnalités avancées de débogage, mais ce sont les principes de base.
entrer dans va creuser dans les appels de méthode, l'
étape exécutera simplement la ligne et passera à la suivante
Vous ne pouvez pas parcourir les détails de la méthode en utilisant l'étape ci-dessus. Si vous voulez sauter la ligne actuelle, vous pouvez utiliser l'étape, puis il vous suffit d'appuyer F6une seule fois sur pour passer à la ligne suivante. Et si vous pensez qu'il y a quelque chose de mal dans la méthode, utilisez F5pour examiner les détails.
Pas à pas L'expression suivante sur la ligne actuellement sélectionnée à exécuter est invoquée et l'exécution s'arrête à la ligne exécutable suivante dans la méthode invoquée.
Pas à pas La ligne actuellement sélectionnée est exécutée et suspend sur la ligne exécutable suivante.