Pregunta Al usar el depurador Java en Intellij, ¿qué significa "Drop Frame"?


Estaba usando el depurador de Java dentro de Intellij 8 y noté un botón etiquetado como "drop frame", ¿alguien sabe para qué sirve esto? ¿Cómo / por qué se usaría / sería útil?


76
2018-03-02 23:49


origen


Respuestas:


La pila de llamadas de su aplicación se puede ver en el depurador. Usando la funcionalidad "Soltar marco" puede "retroceder" a un marco de pila anterior, en cierto sentido retroceder en el tiempo. Esto puede ser útil para volver a ingresar a una función si omitió 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 las variables estáticas, los cambios en los valores de campo y similares) no se desharán, solo se restablecen las variables locales. Esto puede conducir a una ruta de ejecución diferente a la que originalmente condujo a su punto de ruptura. Debe tener esto en cuenta: a menudo considero que es una característica útil para explorar diferentes rutas de ejecución sin tener que reiniciar la aplicación o un proceso particular largo que condujo a la pila actual. Combinado con el cambio de valores 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 - e. gramo. tráfico de red, manipulaciones de archivos, salida de consola, etc. - no se puede rebobinar.


99
2018-03-03 00:01



Drop Frame dentro del depurador aparece   el marco de pila actual y pone   control de vuelta a la llamada   método, restableciendo cualquier variable local.   Esto es muy útil para dar pasos repetidamente   a través de una función, pero ten cuidado:   mutaciones de campo o estado global   los cambios se mantendrán

Ver más información aquí.


10
2018-03-02 23:56



Quitar fotogramas de la pila utilizando el depurador esencialmente le permite "rebobinar" la ejecución de su aplicación para alcanzar un estado anterior. Las variables fuera del marco de pila no se revierten.

Como nota al margen, creo que esta característica se llama "Drop a Frame "en Eclipse, pero sirve para el mismo propósito.


5
2018-03-02 23:55