web-dev-qa-db-fra.com

Quelle est la différence entre Step Into et Step Over dans le débogueur Eclipse?

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?

172
JavaUser

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 intoF6 pour step over et F7 pour step return.

249
paxdiablo

Lors du débogage des lignes de code, voici les scénarios habituels:

  • ( Step Into ) Une méthode est sur le point d'être appelée et vous souhaitez effectuer un débogage dans le code de cette méthode. La prochaine étape consiste donc à entrer cette méthode et continuez le débogage pas à pas.
  • ( Step Over ) Une méthode est sur le point d'être appelée, mais vous n'êtes pas intéressé par le débogage de cette invocation particulière, vous voulez donc que le débogueur l'exécute méthode complètement comme une étape entière.
  • ( Step Return ) Vous avez terminé de déboguer cette méthode étape par étape et vous voulez simplement que le débogueur exécute la méthode complète jusqu'à ce qu'elle retourne une étape entière.
  • ( Resume ) Vous souhaitez que le débogueur reprenne l'exécution "normale" au lieu d'être exécuté pas à pas
  • ( Line Breakpoint ) Peu vous importe comment cela s'est passé, mais si l'exécution atteint une ligne de code particulière, vous voulez que le débogueur suspende temporairement l'exécution. afin que vous puissiez décider quoi faire.

Eclipse dispose d'autres fonctionnalités avancées de débogage, mais ce sont les bases fondamentales.

Voir également

126
polygenelubricants

entrer dans volonté Dig dans les appels de méthode
step over exécutera simplement la ligne et passera à la suivante

20

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.

3
wanana

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.

1
shiva