Puede usar el comando soltar al marco de Eclipse para volver a ingresar el método actual desde la parte superior. Pero no desenrollará ningún cambio de estado que haya sucedido, por lo que puede no funcionar dependiendo del tipo de método en el que se encuentre.
Otra herramienta realmente genial que realmente te permite retroceder y avanzar en el tiempo es el depurador omnisciente . Funciona instrumentando las clases a medida que se cargan en el cargador de clases, por lo que puede grabar todo lo que hace su código. Puede hacer cosas muy interesantes, como responder "cuándo, dónde y por qué se asignó su valor actual a este campo". La interfaz de usuario es bastante torpe, y puede tener dificultades para manejar bases de código grandes, pero en algunos casos realmente puede ahorrar mucho tiempo.
Actualización : Chronon proporciona un producto comercial que describe como un "DVR para Java", que parece hacer muchas de las mismas cosas que el ODB.
Más allá de lo que se mencionó en las respuestas anteriores, es decir, la función de caída a cuadro de Eclipse en la vista de depuración , que reinicia la depuración antes en el marco de la pila (pero no revierte los datos globales / estáticos) y el depurador omnisciente , que es un poco en bruto y no tanto evolucionando: hay algunas herramientas basadas en Eclipse que podrían usarse para "retroceder" en el tiempo (de ejecución):
JIVE extiende el depurador Eclipse Java con la capacidad de registrar los estados del programa. La perspectiva JIVE proporciona algunos diagramas UML útiles que se actualizan mientras se ejecuta el programa. Estos diagramas proporcionan una visión general del estado de la aplicación (diagrama de objetos) y del seguimiento de la pila (diagrama de secuencia). Puede consultar la traza memorizada y retroceder y avanzar en el tiempo y ver los diagramas correspondientes.
Diver solo graba llamadas a métodos y realmente no graba estados de programa como JIVE. Cada evento de llamada al método se almacena para su posterior recuperación y análisis. Extiende las configuraciones Java Run y Debug principalmente para especificar filtros. El seguimiento se puede pausar / reanudar / filtrar en tiempo de ejecución. Una vez grabada, la perspectiva Diver puede mostrarla en un diagrama de secuencia interactivo.
JIVE y Diver son proyectos de código abierto emitidos por investigaciones académicas. A noviembre de 2012, ambos proyectos están activos.
Chronon es un producto comercial, pero tienen licencias gratuitas para estudiantes y proyectos de código abierto. Por lo que se afirma en su sitio web, es probablemente la grabadora más completa, ya que puede reproducir el historial grabado, avanzar y retroceder, lo que permite, como dicen, la depuración de viajes en el tiempo. Tampoco se necesita Eclipse para grabar.
Todos estos complementos son bastante codiciosos en recursos, por lo que es mejor tener una buena máquina de especificaciones y usar su función de filtro. Un requisito definitivo para ejecutarlos con éxito es extender el espacio de almacenamiento dinámico en eclipse.ini .
En mi caso, intenté usar JIVE y Diver para depurar un programa de análisis XML pero siempre terminé congelando el eclipse debido a la falta de recursos. Diver podría ser difícil de ejecutar en Linux 64 bits , funciona en ubuntu 32 bits y posiblemente en otras distribuciones de 32 bits con estos consejos . Diver funciona en Windows, mejor aún en una JVM de Windows de 64 bits + 64 bits; de lo contrario, estará limitado a un espacio de almacenamiento dinámico máximo de 1.3-1.6 Gb en ventanas de 32 bits . JIVE funciona muy bien en mi Linux de 64 bits, y parece funcionar bien en otras plataformas.
fuente
Sí , Eclipse CDT admite la función de depurador histórico.
Abra la Configuración de depuración -> Depurador -> Habilitar la depuración inversa al inicio .
Entonces puede presionar
shift+F5
oshift+F6
para retroceder comoF5
oF6
para avanzar.fuente
Soy parcial, pero Chronon hace exactamente lo que estás buscando.
Drop to Frame no es exactamente un paso atrás, ya que si el método ha cambiado algo en el montón, no se revertirá.
fuente
Estaba buscando esta característica en eclipse también. Sé que el estudio visual puede hacer eso. En realidad, puede arrastrar el marcador de línea actual y soltarlo en cualquier parte del código. No estoy seguro de si los cambios en las variables se pueden deshacer. Pero aún así es muy útil y ahorra mucho tiempo. He estado esperando esto en eclipse durante mucho tiempo.
fuente
La pregunta no especifica un lenguaje Eclipse, y muchas de las respuestas suponen Java.
Si usa C ++ y GCC con el depurador de GDB, Eclipse tiene el
Run->Move to Line
que hace el trabajo y funciona como la siguiente instrucción de Visual Studio Set Next . En este caso, Eclipse está utilizando la capacidad que está en GDB.Si utilizo Java, no conozco una forma de hacerlo con Eclipse o Netbeans, aunque otras respuestas han sugerido complementos. Eclipse tiene el comando "soltar al marco" que funciona para Java en mi versión (Juno SR1). Si modifico y guardo código dentro de una función en modo de depuración, la línea de ejecución se mueve automáticamente a la parte superior de la función actual y puedo continuar desde allí. No es lo mismo que especificar la línea, pero es algo.
fuente