realizar online intellij ideas depurar debugger debug como application java debugging intellij-idea

online - intellij debug java



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

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?


Drop Frame dentro del depurador muestra el marco de pila actual y devuelve el control al método de llamada, reiniciando cualquier variable local. Esto es muy útil para recorrer paso a paso una función, pero tenga cuidado: las mutaciones de campo o los cambios de estado globales se mantendrán.

Ver más información here .


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, los efectos secundarios que puedan haber ocurrido, como el tráfico de red, las manipulaciones de archivos, la salida de la consola, etc., no se pueden rebobinar.


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 to Frame" en Eclipse, pero sirve para el mismo propósito.