Depurador
Introducción al depurador
El depurador de JARU IDE ejecuta tu programa en su propia VM y lo detiene en las líneas que marques, para que avances línea a línea y mires el valor de las variables. Sus botones están en la pestaña Build de la cinta, en el grupo Debug.
Puntos de parada
Un punto de parada detiene el programa cuando llega a esa línea.
- Para ponerlo, haz clic en el margen izquierdo del editor de código, junto al número de línea, o deja el cursor en la línea y pulsa
F9. - En el margen aparece una marca roja.
- Para quitarlo, haz clic otra vez en la marca o pulsa
F9en la línea.
Iniciar la depuración
- Pon al menos un punto de parada.
- Pulsa Debug, o
F5en el editor de código. El IDE compila el proyecto y lo arranca en su propia VM. - Al llegar al punto de parada, el programa se detiene, el editor marca la línea y el Output dice en qué línea y fichero está parado. El IDE se pone delante.
Mientras está parado, la ventana del juego no responde, y Windows puede decir «No responde». Es normal: espera a que le digas que siga.
Controles
| Acción | Botón | Atajo | Qué hace |
|---|---|---|---|
| Depurar | Debug | F5 | Compila y arranca el programa para depurarlo |
| Continuar | Continue | F5 | Sigue hasta el siguiente punto de parada |
| Paso a paso | Step Over | F10 | Ejecuta la línea marcada sin entrar en las funciones que llama |
| Entrar | Step Into | Ejecuta la línea marcada entrando en la función que llama | |
| Detener | Stop | Cierra el programa y su consola |
Los atajos funcionan con el cursor en el editor de código. Stop está en el grupo Compiler de la misma pestaña.
Ventana Watch
Watch, en el grupo Debug, abre una ventana que enseña las variables que le pidas:
- Escribe el nombre de la variable en la caja de arriba. Trae escrito «New Variable...»: bórralo antes.
- Pulsa
Intro. - Con el programa parado, la ventana enseña su valor (Value), su tipo (Type) y su contexto (Context), por ejemplo
local.
Las listas largas salen por páginas: Items/page dice cuántos elementos caben en cada una.
También puedes añadirla desde el editor de código: pon el cursor en el nombre de la variable, o selecciónalo, haz clic derecho y elige Add Watch. Si Watch está cerrada, la abre; si el programa está parado, enseña ya su valor, y si la variable ya estaba en la lista, te lo dice. El clic derecho no mueve el cursor: cuenta la palabra donde está el cursor, no la que tiene el ratón debajo.
Ejemplo práctico
func factorial(n)
if (n <= 1) then // Pon aquí el punto de parada
return 1
end
return n * factorial(n - 1)
end
var resultado = factorial(5)
print(resultado)
- Pon un punto de parada en la línea del
if, con un clic en el margen o conF9. - Pulsa
F5para depurar. El programa se para en elif. - En Watch, añade
n: vale 5. - Pulsa
F5para seguir. El programa vuelve a pararse en elifcon la llamada siguiente, y Watch enseña elnnuevo.
Lo que todavía no tiene
El depurador no tiene puntos de parada condicionales, y un punto de parada no se puede desactivar sin quitarlo. No enseña la pila de llamadas ni un panel con las variables locales, ni tiene una consola para evaluar expresiones. Tampoco hay un botón para salir de la función actual (Step Out).
Consejos
Step Over (F10) no entra en las funciones: es lo más rápido cuando ya sabes que una función hace lo que debe.
La depuración paso a paso es más lenta que la ejecución normal. Pon los puntos de parada donde te interesen, en lugar de recorrer todo el código línea a línea.