2012-01-16 77 views
12

En Visual Studio, durante las sesiones de depuración fue posible saltar a la línea seleccionada por el cursor y ejecutar esa línea. Después de saltar a esa línea, puede continuar depurando desde la línea a la que saltó. ¿Esta característica existe en el mundo de Java/Eclipse?Durante la depuración en Eclipse, ¿es posible saltar a una línea y ejecutarla durante la depuración?

Por ejemplo:

foo1();

foo2();

foo3();

return true;

En Visual Studio es posible interrumpir foo1(), colocar el cursor en foo3(), ejecutar foo3() sin ejecutar foo2. Además, cuando el depurador se detiene en "return true", puedo colocar el cursor en foo1 y ejecutar foo1 nuevamente. Además, puedo continuar ejecutando líneas arbitrarias de código a través de estas acciones.

+2

Esta función no parece existir. http://stackoverflow.com/questions/4864917/is-it-possible-to-go-back-in-java-eclipse-debugger-like-dragging-the-arrow-in – MedicineMan

+0

Interesante. ¿Qué sucede si le dices que salte a una línea y las líneas omitidas declaren las variables que usa la línea a la que saltaste? –

+1

si es una clase de valor, la variable estará dentro del alcance pero tendrá el valor predeterminado. Si es tipo de referencia, se inicializará a nulo. – MedicineMan

Respuesta

1

Sí. Ponga un punto de interrupción en la línea, presione F8, espere a que el programa se ejecute hasta esta línea, y presione F6 para ir a la línea siguiente, o F5 para pasar a la línea actual.

EDIT:

vez que el hilo se hace una pausa en el depurador, también puede seleccionar un código ejecutable, haga clic y seleccione "Display" (CTLL-Shift-D) o "Ejecutar" (Ctrl U). También puede usar la vista Mostrar para escribir cualquier declaración, seleccionarla y ejecutarla o mostrarla.

+6

Esta es una respuesta útil porque documenta algunas características interesantes del Eclipse IDE. Sin embargo, no se comporta como el IDE de Visual Studio. En este momento, la respuesta a esta pregunta es "No, esta característica no parece existir". – MedicineMan

+0

Realmente no veo cómo difiere de lo que hace Visual Studio. ¿Podrías ser más explícito? ¿Lo has probado en Eclipse? Coloca un punto de interrupción en 'foo1()' y 'return true', mientras está en pausa en foo1, selecciona' foo3() 'y hace clic en Ctrl-U, presiona F8 para ir hasta que vuelva verdadero, luego selecciona' foo1() 'y presiona Ctrl-U. –

+1

Sí, lo he intentado como usted lo describe. Eclipse no es tan fácil de usar si las variables se definen como parte de las líneas que se ejecutarán.Considere: int startHere = 0; MyClass me = new MyClass(); foo (me); foo2 (me); si se rompe en la primera línea y ejecuta la tercera línea, Eclipse se queja de que no está definido. Además, la flecha no se ha movido a la línea tres, todavía apunta a la línea 1. Aunque ha logrado ejecutar la línea 3, la ejecución no ha saltado a la línea 3 y aunque puede continuar resaltando líneas y ejecutar lo siguiente, la experiencia es torpe – MedicineMan

8

Haga clic en la línea que desea ejecutar y presione Ctrl + R y se ejecutará en esa línea en lugar de poner en toneladas de puntos de interrupción. También puedes usar F8 para correr hasta tu próximo punto de quiebre o F6 para correr a la siguiente línea.

+2

+1 para Ctrl-R, que no sabía. –

+0

Lo siento, he editado tu respuesta en lugar de editar la mía. –

+0

Ctrl + r es una gran característica, nunca dejas de aprender – Voo

Cuestiones relacionadas