working ver oxygen online not how funciona debugger debuggear debug como breakpoint application java eclipse debugging

java - oxygen - ¿Cuál es la diferencia entre Step Into y Step Over en el depurador Eclipse?



how to debug in eclipse oxygen (5)

Al depurar líneas de código, estos son los escenarios habituales:

  • ( Paso a paso ) Se va a invocar un método y desea depurar el código de ese método, por lo que el siguiente paso es ir a ese método y continuar la depuración paso a paso.
  • ( Paso ) Se va a invocar un método, pero no está interesado en depurar esta invocación en particular, por lo que quiere que el depurador ejecute ese método completamente como un paso completo.
  • ( Paso Retorno ) Ha terminado de depurar este método paso a paso, y solo quiere que el depurador ejecute todo el método hasta que regrese como un paso completo.
  • ( Reanudar ) Desea que el depurador reanude la ejecución "normal" en lugar de paso a paso
  • ( Línea de punto de interrupción ) No le importa cómo llegó allí, pero si la ejecución llega a una línea de código particular, quiere que el depurador pause temporalmente la ejecución allí para que pueda decidir qué hacer.

Eclipse tiene otras características avanzadas de depuración, pero estos son los fundamentos básicos.

Ver también

Quiero depurar todo el flujo de un programa Java. ¿Cuál es la diferencia entre F5 (paso hacia adentro) y F6 (paso hacia adelante) en eclipse?


No puede pasar por los detalles del método al usar el paso más allá. Si desea omitir la línea actual, puede usar un paso más, luego solo tiene que presionar F6 solo una vez para pasar a la línea siguiente. Y si cree que hay algo mal en el método, use F5 para examinar los detalles.


paso a profundizar en las llamadas al método
paso solo ejecutará la línea y pasará a la siguiente


Paso a paso Se invoca la siguiente expresión en la línea actualmente seleccionada para ejecutarse, y la ejecución se suspende en la siguiente línea ejecutable en el método invocado.

Paso a paso La línea seleccionada actualmente se ejecuta y se suspende en la siguiente línea ejecutable.


Considere el siguiente código con su puntero de instrucción actual (la línea que se ejecutará a continuación) en la f(x); línea en g() , habiendo sido llamado por la línea g(2) en 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 println() que intervenir en ese punto, se moverá a la línea println() en f() , entrando en la llamada a la función.

Si fueras a dar un paso en ese punto, te moverás a la f(1); línea en g() , pasando por encima de la llamada a la función.

Otra característica útil de los depuradores es el paso hacia afuera o hacia atrás . En ese caso, un retorno de paso básicamente lo guiará a través de la función actual hasta que vuelva a subir un nivel. En otras palabras, pasará por f(x) f(1) , luego retrocederá a la función de llamada para terminar en g(3); en main() .

Eclipse (al menos Europa, que es el único que tengo a mano en este momento) usa F5 para step into , F6 para step over hacia step over y F7 para step return step over .