El contenido de este sitio se ha traducido mediante inteligencia artificial (IA) o tecnología de traducción automática, y puede contener errores.

Skip to content

¡Mejoras en el depurador de Lua!

¡Hoy nos complace anunciar una importante actualización de nuestro depurador de Lua! Esta función está diseñada para ayudarte a comprender cómo se ejecuta tu código e identificar errores de forma más eficaz que las opciones más habituales, como las sentencias de impresión. Si no has probado recientemente el depurador de Lua, te invitamos a descubrir cómo puedes utilizarlo para depurar tu código de forma más eficaz. Antes de describir las últimas mejoras y correcciones, repasemos brevemente las características clave del depurador de Lua.

Puntos de interrupción

Insertar puntos de interrupción en tu código te permite detener el juego en cualquier momento para inspeccionar su lógica. Para utilizar los puntos de interrupción, localiza aproximadamente dónde se está comportando de forma anómala tu juego y establece puntos de interrupción en aquellas instrucciones en las que necesites más información haciendo clic a la izquierda de la línea de código. Tu código dejará de ejecutarse temporalmente y todas las variables globales y locales, propiedades y referencias a objetos mostrarán los valores que se les han asignado en el juego hasta ese momento.

En este ejemplo, se ha establecido un punto de interrupción en la instrucción print, lo que te permite inspeccionar el valor de las variables definidas al pasar el cursor por encima de ellas.

Recorre tu código

Cuando hayas detenido el código en un punto de interrupción específico, podrás centrarte en diagnosticar lo que está sucediendo. Por ejemplo, cuando llegues a otras llamadas a funciones, puedes entrar en esas funciones e investigar qué están haciendo. También puedes salir de cualquier función, lo que hará que el código se ejecute hasta que la función devuelva un resultado y se detenga en la siguiente instrucción del código que la llamó. Esta funcionalidad te permite observar de cerca cómo cambian las variables a lo largo del tiempo y qué funciones se están llamando.

En este ejemplo, al hacer clic en el botón «Step Into» (Entrar), el depurador se desplaza al interior de la función denominada testFunc( )
En este ejemplo, al hacer clic en el botón «Step Out» (Salir), el depurador sale de la función llamada testFunc() y pasa a la siguiente línea de código tras la llamada inicial a la función.

Supervisa los cambios en tus variables

«Añadir observación» te permite indicar al depurador de Lua qué variables deseas rastrear u observar cuando se encuentren con puntos de interrupción. Para añadir un elemento a la lista de observación, solo tienes que resaltar una variable, hacer clic con el botón derecho del ratón sobre ella en la vista de script y seleccionar la opción de menú «Añadir observación». También puedes hacer clic en el botón «Añadir observación» y escribir el nombre de la variable. Esto recuperará automáticamente información sobre el valor de la variable bajo observación cuando se alcancen los puntos de interrupción.

En este ejemplo, al hacer clic en el botón «Step Out» (Salir), el depurador sale de la función denominada testFunc() y pasa a la siguiente línea de código tras la llamada inicial a la función.

Pila de llamadas

La ventana «Pila de llamadas» muestra una lista de funciones que se invocan unas a otras en secuencia. Por ejemplo, la función A llama a la función B, que a su vez llama a la función C, la cual contiene un punto de interrupción incrustado. Entonces, cuando la ejecución se detiene en ese punto de interrupción, la pila mostrará el orden en que se invocaron las funciones junto con el lugar donde se realizó la llamada. Mientras se observan las variables locales en la función C, también se puede cambiar entre las funciones de la pila y modificar el contexto de la función seleccionada actualmente en la lista de la pila para examinar los cambios en dichas variables locales.

En este ejemplo, puedes ver en qué punto del juego te encuentras cuando se detiene en un punto de interrupción del código. Si la línea de código actual se ha llamado desde una función llamada desde dentro de otra función, la pila de llamadas mostrará el orden en que se llamaron las funciones junto con el número de línea en el que se realizó la llamada.

Uso del depurador de Lua

Se puede acceder al depurador de Lua siempre que estés editando scripts en Roblox Studio. Para empezar y añadir puntos de interrupción a tu código, simplemente haz clic a la izquierda de la línea de código de la ventana de script en la que desees hacer una pausa. Cada línea en la que hagas clic y designes como punto de interrupción se indicará con un punto rojo.

En cuanto pruebes tu juego, podrás activar las opciones «Breakpoint», «Add Watch» y «Call Stack» en el menú «View» e investigar el comportamiento de tu código debajo de la ventana principal. ¡Así de sencillo! Si aún no has utilizado el depurador de Lua, te animamos a que le eches un vistazo.

Nuevas mejoras

Ahora que hemos repasado las características clave del depurador de Lua, recientemente hemos realizado una serie de mejoras y correcciones significativas, entre las que se incluyen:

  • Se ha corregido un problema por el que el script correcto podía no abrirse en un punto de interrupción o desde la ventana de pila de llamadas.
  • Se ha corregido el resaltado de la línea actual en el depurador de Lua.
  • Ahora se detectan correctamente los errores de llamada protegida o pcall.
  • Se han añadido tablas mixtas que permiten observar y realizar un seguimiento de los valores. También puedes pasar el cursor por encima de una variable de tabla y ver todos tus valores inmediatamente sin necesidad de imprimirlos.
  • Varias mejoras menores en la interfaz de usuario.
  • Varias correcciones en las descripciones emergentes y en la ventana «Añadir observación».
    • Al pasar el ratón por encima de variables de un solo carácter, ahora se muestra correctamente el valor de la variable.
    • Ahora todas las propiedades aparecen en la información sobre herramientas y en la ventana «Watch», sin que falte ninguna.

Estamos comprometidos a proporcionar a la talentosa comunidad de desarrolladores de Roblox las herramientas que necesitan. Nos encantaría conocer tu opinión sobre cómo podemos seguir mejorando el depurador de Lua en el foro de desarrolladores.