ED

UT07

Debuging en IntelliJ

vídeo

La depuración (debugging) en IntelliJ IDEA es una funcionalidad muy útil para identificar y corregir errores en tu código. Aquí te doy una guía paso a paso para empezar a depurar tu código en IntelliJ:

1. Establecer puntos de interrupción (breakpoints)

Los puntos de interrupción son lugares en tu código donde deseas que la ejecución se detenga para inspeccionar el estado del programa.

2. Iniciar la depuración

3. Inspeccionar el estado del programa

Cuando la ejecución se detiene en un punto de interrupción, puedes inspeccionar:

4. Controlar la ejecución

En el modo de depuración, tienes varios controles:

5. Finalizar la depuración

Consejos adicionales:

Ampliación sobre la pila de llamadas

La pila de llamadas (o call stack) en depuración es una estructura que muestra el rastro de las llamadas a métodos o funciones que han llevado a la ejecución del código en el punto donde se ha detenido, como un punto de interrupción.

¿Cómo funciona la pila de llamadas?

Cada vez que un método o función es llamado, se agrega a la pila de llamadas. Cuando el método termina su ejecución, se elimina de la pila. Esto te permite ver en qué lugar exacto se encuentra tu programa en cualquier momento y cómo llegó ahí.

¿Qué puedes hacer con la pila de llamadas en IntelliJ IDEA?

  1. Inspeccionar el flujo de ejecución: La pila de llamadas muestra una lista de métodos que se han llamado, comenzando desde el más reciente (en la parte superior) hasta el primero que inició la cadena de llamadas.

  2. Navegar entre las llamadas: Puedes hacer clic en cualquier nivel de la pila para ver el código en ese punto específico. Esto es útil si quieres retroceder y ver qué sucedió antes de llegar al punto actual.

  3. Detectar problemas: Si tienes un error o comportamiento inesperado, la pila de llamadas te ayuda a encontrar el origen del problema. Por ejemplo, podrías ver si una llamada incorrecta a un método está causando un fallo.

Ejemplo típico de una pila de llamadas:

Supongamos que tienes un código simple en Java:

public class Main {
    public static void main(String[] args) {
        metodoA();
    }

    public static void metodoA() {
        metodoB();
    }

    public static void metodoB() {
        System.out.println("Debugging");
    }
}

Si pones un punto de interrupción en System.out.println("Debugging");, la pila de llamadas podría verse así:

metodoB() - Main.java:9
metodoA() - Main.java:5
main() - Main.java:3

Información clave en IntelliJ:

¿Cuándo es útil la pila de llamadas?