Estaba usando el depurador de Java dentro de Intellij 8 y noté un botón con la etiqueta "drop frame", ¿alguien sabe para qué sirve esto? ¿Cómo / por qué se usaría / sería útil?
fuente
Estaba usando el depurador de Java dentro de Intellij 8 y noté un botón con la etiqueta "drop frame", ¿alguien sabe para qué sirve esto? ¿Cómo / por qué se usaría / sería útil?
La pila de llamadas de su aplicación se puede ver en el depurador. Usando la funcionalidad "Drop Frame" puede "retroceder" a un marco de pila anterior, en cierto sentido retrocediendo en el tiempo. Esto puede ser útil para volver a ingresar a una función si se perdió un punto crítico que le gustaría volver a ver.
Como sugiere el nombre "Stack Frame", los cambios que ya se realizaron en el estado global (como variables estáticas, cambios en los valores de campo y similares) no se deshacerán, solo se restablecerán las variables locales. Esto puede llevar a una ruta de ejecución diferente a la que originalmente condujo a su punto de interrupción. Debe ser consciente de esto: a menudo lo considero una característica útil para explorar diferentes rutas de ejecución sin tener que reiniciar la aplicación o un proceso prolongado en particular que condujo a la pila actual. Combinado con el cambio de valores de variables también disponible a través del depurador, puede hacer todo tipo de cosas interesantes.
Tenga en cuenta que, por supuesto, cualquier efecto secundario que pueda haber ocurrido, por ejemplo, tráfico de red, manipulación de archivos, salida de la consola, etc., no se puede rebobinar.
Drop Frame dentro del depurador saca el marco de pila actual y devuelve el control al método de llamada, restableciendo cualquier variable local. Esto es muy útil para recorrer repetidamente una función, pero tenga cuidado: permanecerán mutaciones de campo o cambios de estado global.
Vea más información aquí .
Eliminar fotogramas de la pila usando el depurador esencialmente le permite "rebobinar" la ejecución de su aplicación para alcanzar un estado anterior. Las variables fuera del marco de la pila no se revierten.
Como nota al margen, creo que esta característica se llama "Drop to Frame" en Eclipse, pero tiene el mismo propósito.