web-dev-qa-db-fra.com

Qu'est-ce que l'entrée, la sortie et l'étape dans Firebug?

Je suis nouveau sur le débogueur FireBug. Est-ce que n'importe qui peut dire ce qui est entré, franchi et sorti

52
akila
  • L'étape into entraînera le débogueur à descendre dans tous les appels de méthode sur la ligne actuelle. S'il y a plusieurs appels de méthode, ils seront visités par ordre d'exécution; s'il n'y a pas d'appels de méthode, c'est la même chose que l'étape. Cela équivaut à peu près à suivre chaque ligne d'exécution individuelle, comme le verrait l'interprète.
  • L'étape over passe à la ligne suivante dans votre portée actuelle (c'est-à-dire qu'elle va à la ligne suivante), sans descendre dans aucun appel de méthode en cours de route. Ceci est généralement utilisé pour suivre la logique à travers une méthode particulière sans se soucier des détails de ses collaborateurs, et peut être utile pour trouver à quel moment d'une méthode les conditions attendues sont violées.
  • L'étape out se poursuit jusqu'au prochain "retour" ou équivalent - c'est-à-dire jusqu'à ce que le contrôle soit revenu à la trame de pile précédente. Ceci est généralement utilisé lorsque vous avez vu tout ce dont vous avez besoin à ce point/méthode, et que vous voulez faire bouillonner la pile de quelques couches à l'endroit où le la valeur est réellement utilisée.

Imaginez le code suivant, entré via main() et qui se trouve maintenant sur la première ligne de bar:

function main() {
   val s = foo();
   bar(s);
}

function foo() {
   return "hi";
}

function bar(s) {
   val t = s + foo(); // Debugger is currently here
   return t;
}

Ensuite:

  • L'entrée dans se poursuivra dans l'appel foo, et la ligne actuelle deviendra alors le return "hi"; ligne dans foo.
  • Une étape ignorera le fait qu'une autre méthode est invoquée et passera à return t; ligne (qui vous permet de voir rapidement en quoi t est évalué).
  • Le retrait terminera l'exécution du reste de la méthode bar et le contrôle reviendra à la dernière ligne de la méthode main.
110
Andrzej Doyle
  • Step Into entraînera le débogueur à entrer dans le prochain appel de fonction et à s'arrêter là.

  • Step Over indiquera au débogueur d'exécuter la fonction suivante et s'arrêtera ensuite.

  • Step Out indiquera au débogueur de terminer la fonction actuelle et d'interrompre après.

14
SLaks

La version courte est, step into vous emmène à l'intérieur de la fonction appelée sur la ligne courante (en supposant qu'une est appelée), step out vous ramène là où vous étiez lorsque vous avez décidé de step into une fonction et step over passe simplement à la ligne de code suivante. Par exemple:

window.someFunction = function() {
    var x = 10;    //step over to move to the next line
                   //step out to return to the line after where 'someFunction()' was called
                   //step into not available
    var y = 20;
    return x * y;
};

//set breakpoint here
var x = 7;   //step over to execute this line and move to the 
             //next (step into and step out not available)
x += someFunction();  //step over to move to the next line
                      //step into to move to someFunction() (above)
                      //step out not available
alert(x);    //step over to display the alert
             //step out and (probably) step into not available
5
aroth
  • entrer dans -> aller dans le sous-programme et attendre la prochaine action
  • enjambez -> sautez par-dessus le sous-programme sans attendre à nouveau
  • sortir -> si vous êtes dans le sous-programme, vous le quitterez sans attendre
3
Billy Moon